Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Rust (programming language)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Rust_(programming_language)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.pygments.css" rel="stylesheet" type="text/css">
<link href="./mw/ext.tmh.player.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Rust_programming_language rootpage-Rust_programming_language skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Rust (programming language)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">


</p>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */


.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}


/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above" style="background-color:#e0e0e0;">Rust</th></tr><tr><td colspan="2" class="infobox-image"><span typeof="mw:File"></span></td></tr><tr><th scope="row" class="infobox-label"><a href="Programming_paradigm" title="Programming paradigm">Paradigms</a></th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1288773161">
/* start https://en.wikipedia.org/ */


.mw-parser-output ul.cslist,.mw-parser-output ul.sslist,.mw-parser-output ul.andlist,.mw-parser-output ul.andlistoxford{margin:0;padding:0;display:inline-block;list-style:none}.mw-parser-output ul.cslist-embedded{display:inline}.mw-parser-output .cslist li,.mw-parser-output .sslist li,.mw-parser-output .andlist li,.mw-parser-output .andlistoxford li{margin:0;padding:0 0.25em 0 0;display:inline-block}.mw-parser-output .cslist li:after,.mw-parser-output .andlistoxford li:after{content:", "}.mw-parser-output .sslist li:after{content:"; "}.mw-parser-output .cslist li:last-child:after,.mw-parser-output .sslist li:last-child:after,.mw-parser-output .andlist li:last-child:after,.mw-parser-output .andlistoxford li:last-child:after{content:none}.mw-parser-output .andlist li:nth-last-child(2):after{content:" and "}.mw-parser-output .andlistoxford li:nth-last-child(2):after{content:", and "}


/* end https://en.wikipedia.org/ */
</style><ul class="cslist"><li><a href="Concurrent_computing" title="Concurrent computing">Concurrent</a></li><li><a href="Functional_programming" title="Functional programming">functional</a></li><li><a href="Generic_programming" title="Generic programming">generic</a></li><li><a href="Imperative_programming" title="Imperative programming">imperative</a></li><li><a href="Structured_programming" title="Structured programming">structured</a></li></ul></td></tr><tr><th scope="row" class="infobox-label"><a href="Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser">The Rust Team</td></tr><tr><th scope="row" class="infobox-label">First&nbsp;appeared</th><td class="infobox-data">January&nbsp;19, 2012<span style="display:none">&nbsp;(<span class="bday dtstart published updated">2012-01-19</span>)</span></td></tr><tr><td colspan="2" class="infobox-full-data"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">1.89.0<sup id="cite_ref-wikidata-42eccb0a605b229c6b6eea550d8b48ffbb9477d8-v20_1-0" class="reference"><a href="#cite_note-wikidata-42eccb0a605b229c6b6eea550d8b48ffbb9477d8-v20-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>&nbsp;
/ August 7, 2025<span style="display:none">&nbsp;(<span class="bday dtstart published updated">August 7, 2025</span>)</span></div></td></tr><tr style="display:none"><td colspan="2">
</td></tr><tr><th scope="row" class="infobox-label"><a href="Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data"><ul class="cslist"><li><a href="Affine_type_system" class="mw-redirect" title="Affine type system">Affine</a></li><li><a href="Type_inference" title="Type inference">inferred</a></li><li><a href="Nominal_type_system" title="Nominal type system">nominal</a></li><li><a href="Static_typing" class="mw-redirect" title="Static typing">static</a></li><li><a href="Strong_and_weak_typing" title="Strong and weak typing">strong</a></li></ul></td></tr><tr><th scope="row" class="infobox-label">Implementation language</th><td class="infobox-data"><a href="OCaml" title="OCaml">OCaml</a> (2006–2011)<br>Rust (2012–present)</td></tr><tr><th scope="row" class="infobox-label"><a href="Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="Cross-platform_software" title="Cross-platform software">Cross-platform</a><sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>note 1<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label"><a href="Operating_system" title="Operating system">OS</a></th><td class="infobox-data"><a href="Cross-platform_software" title="Cross-platform software">Cross-platform</a><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>note 2<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label"><a href="Software_license" title="Software license">License</a></th><td class="infobox-data"><a href="MIT_License" title="MIT License">MIT</a>, <a href="Apache_License" title="Apache License">Apache 2.0</a><sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>note 3<span class="cite-bracket">]</span></a></sup></td></tr><tr><th scope="row" class="infobox-label"><a href="Filename_extension" title="Filename extension">Filename extensions</a></th><td class="infobox-data"><code>.rs</code>, <code>.rlib</code></td></tr><tr><th scope="row" class="infobox-label">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="https://www.rust-lang.org/">rust-lang.org</a></span></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><ul class="cslist"><li><a href="Alef_(programming_language)" title="Alef (programming language)">Alef</a></li><li><a href="BETA_(programming_language)" title="BETA (programming language)">BETA</a></li><li><a href="CLU_(programming_language)" title="CLU (programming language)">CLU</a></li><li><a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li><li><a href="C%2B%2B" title="C++">C++</a></li><li><a href="Cyclone_(programming_language)" title="Cyclone (programming language)">Cyclone</a></li><li><a href="Elm_(programming_language)" title="Elm (programming language)">Elm</a></li><li><a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a></li><li><a href="Haskell" title="Haskell">Haskell</a></li><li><a href="Hermes_(programming_language)" title="Hermes (programming language)">Hermes</a></li><li><a href="Limbo_(programming_language)" title="Limbo (programming language)">Limbo</a></li><li><a href="Mesa_(programming_language)" title="Mesa (programming language)">Mesa</a></li><li><a href="Napier88" title="Napier88">Napier</a></li><li><a href="Newsqueak" title="Newsqueak">Newsqueak</a></li><li><a href="NIL_(programming_language)" title="NIL (programming language)">NIL</a></li><li><a href="OCaml" title="OCaml">OCaml</a></li><li><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></li><li><a href="Sather" title="Sather">Sather</a></li><li><a href="Scheme_(programming_language)" title="Scheme (programming language)">Scheme</a></li><li><a href="Standard_ML" title="Standard ML">Standard ML</a></li><li><a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a><sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-influences_9-0" class="reference"><a href="#cite_note-influences-9"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup></li></ul></td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Influenced</th></tr><tr><td colspan="2" class="infobox-full-data"><ul class="cslist"><li><a href="Idris_(programming_language)" title="Idris (programming language)">Idris</a><sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li><li><a href="Project_Verona" title="Project Verona">Project Verona</a><sup id="cite_ref-Project_Verona_11-0" class="reference"><a href="#cite_note-Project_Verona-11"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup></li><li><a href="SPARK_(programming_language)" title="SPARK (programming language)">SPARK</a><sup id="cite_ref-Jaloyan_12-0" class="reference"><a href="#cite_note-Jaloyan-12"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li><li><a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a><sup id="cite_ref-Lattner_13-0" class="reference"><a href="#cite_note-Lattner-13"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li><li><a href="V_(programming_language)" title="V (programming language)">V</a><sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup></li><li><a href="Zig_(programming_language)" title="Zig (programming language)">Zig</a><sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></li></ul></td></tr></tbody></table>
<p><b>Rust</b> is a <a href="General-purpose_programming_language" title="General-purpose programming language">general-purpose</a> <a href="Programming_language" title="Programming language">programming language</a> emphasizing <a href="Computer_performance" title="Computer performance">performance</a>, <a href="Type_safety" title="Type safety">type safety</a>, and <a href="Concurrency_(computer_science)" title="Concurrency (computer science)">concurrency</a>. It enforces <a href="Memory_safety" title="Memory safety">memory safety</a>, meaning that all <a href="Reference_(computer_science)" title="Reference (computer science)">references</a> point to valid memory. It does so without a conventional <a href="Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collector</a>; instead, memory safety errors and <a href="Data_race" class="mw-redirect" title="Data race">data races</a> are prevented by the "borrow checker", which tracks the <a href="Object_lifetime" title="Object lifetime">object lifetime</a> of references <a href="Compiler" title="Compiler">at compile time</a>.
</p><p>Rust supports multiple <a href="Programming_paradigm" title="Programming paradigm">programming paradigms</a>. It was influenced by ideas from <a href="Functional_programming" title="Functional programming">functional programming</a>, including <a href="Immutable_object" title="Immutable object">immutability</a>, <a href="Higher-order_function" title="Higher-order function">higher-order functions</a>, <a href="Algebraic_data_type" title="Algebraic data type">algebraic data types</a>, and <a href="Pattern_matching" title="Pattern matching">pattern matching</a>. It also supports <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented programming</a> via structs, <a href="Union_type" title="Union type">enums</a>, traits, and methods.
</p><p>Software developer Graydon Hoare created Rust as a personal project while working at <a href="Mozilla" title="Mozilla">Mozilla</a> Research in 2006. Mozilla officially sponsored the project in 2009. The first stable release of Rust, Rust 1.0, was published in May 2015. Following a large layoff of Mozilla employees in August 2020, multiple other companies joined Mozilla in sponsoring Rust through the creation of the <a href="#Rust_Foundation">Rust Foundation</a> in February 2021. In December 2022, Rust became the first language other than <a href="C_(programming_language)" title="C (programming language)">C</a> and <a href="Assembly_language" title="Assembly language">assembly</a> to be supported in the development of the <a href="Linux_kernel" title="Linux kernel">Linux kernel</a>.
</p><p>Rust has been noted for its adoption in many software projects, especially <a href="Web_services" class="mw-redirect" title="Web services">web services</a> and <a href="System_software" title="System software">system software</a>. It has been studied academically and has a growing community of developers.
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<div class="mw-heading mw-heading3"><h3 id="2006–2009:_Early_years">2006–2009: Early years</h3></div>

<p>Rust began as a personal project by <a href="Mozilla" title="Mozilla">Mozilla</a> employee Graydon Hoare in 2006.<sup id="cite_ref-MITTechReview_16-0" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Hoare started the project due to his frustration with a broken elevator in his apartment building.<sup id="cite_ref-MITTechReview_16-1" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Hoare has stated that Rust was named for the <a href="Rust_(fungus)" title="Rust (fungus)">group of fungi</a> that are "over-engineered for survival".<sup id="cite_ref-MITTechReview_16-2" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> During the time period between 2006 and 2009, Rust was not publicized to others at Mozilla and was written in Hoare's free time;<sup id="cite_ref-Klabnik2016ACMHistory_17-0" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 7:50">: 7:50 </span></sup> Hoare began speaking about the language around 2009 after a small group at Mozilla became interested in the project.<sup id="cite_ref-Hoare2010_18-0" class="reference"><a href="#cite_note-Hoare2010-18"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> Hoare emphasized prioritizing good ideas from old languages over new development, citing languages including <a href="CLU_(programming_language)" title="CLU (programming language)">CLU</a> (1974), <a href="BETA_(programming_language)" title="BETA (programming language)">BETA</a> (1975), <a href="Mesa_(programming_language)" title="Mesa (programming language)">Mesa</a> (1977), <a href="NIL_(programming_language)" title="NIL (programming language)">NIL</a> (1981), <a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a> (1987), <a href="Newsqueak" title="Newsqueak">Newsqueak</a> (1988), <a href="Napier88" title="Napier88">Napier</a> (1988), <a href="Hermes_(programming_language)" title="Hermes (programming language)">Hermes</a> (1990), <a href="Sather" title="Sather">Sather</a> (1990), <a href="Alef_(programming_language)" title="Alef (programming language)">Alef</a> (1992), and <a href="Limbo_(programming_language)" title="Limbo (programming language)">Limbo</a> (1996) as influences, stating "many older languages [are] better than new ones", and describing the language as "technology from the past come to save the future from itself."<sup id="cite_ref-Klabnik2016ACMHistory_17-1" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 8:17">: 8:17 </span></sup><sup id="cite_ref-Hoare2010_18-1" class="reference"><a href="#cite_note-Hoare2010-18"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> Early Rust developer Manish Goregaokar similarly described Rust as being based on "mostly decades-old research."<sup id="cite_ref-MITTechReview_16-3" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p><p>During the early years, the Rust <a href="Compiler" title="Compiler">compiler</a> was written in about 38,000 lines of <a href="OCaml" title="OCaml">OCaml</a>.<sup id="cite_ref-Klabnik2016ACMHistory_17-2" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 15:34">: 15:34 </span></sup><sup id="cite_ref-OCamlCompiler_19-0" class="reference"><a href="#cite_note-OCamlCompiler-19"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> Early Rust contained features such as explicit <a href="Object-oriented_programming" title="Object-oriented programming">object-oriented programming</a> via an <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">obj</code> keyword (later removed),<sup id="cite_ref-Klabnik2016ACMHistory_17-3" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 10:08">: 10:08 </span></sup> and a <a href="Typestate_analysis" title="Typestate analysis">typestates</a> system that would allow variables of a type to be tracked along with state changes (such as going from uninitialized to initialized).<sup id="cite_ref-Klabnik2016ACMHistory_17-4" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 13:12">: 13:12 </span></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="2009–2012:_Mozilla_sponsorship">2009–2012: Mozilla sponsorship</h3></div>
<p>Mozilla officially sponsored the Rust project in 2009.<sup id="cite_ref-MITTechReview_16-4" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> <a href="Brendan_Eich" title="Brendan Eich">Brendan Eich</a> and other executives, intrigued by the possibility of using Rust for a safe <a href="Web_browser" title="Web browser">web browser</a> <a href="Browser_engine" title="Browser engine">engine</a>, placed engineers on the project including Patrick Walton, Niko Matsakis, Felix Klock, and Manish Goregaokar.<sup id="cite_ref-MITTechReview_16-5" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> A conference room taken by the project developers was dubbed "the nerd cave," with a sign placed outside the door.<sup id="cite_ref-MITTechReview_16-6" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p><p>During this time period, work had shifted from the initial OCaml compiler to a <a href="Self-hosting_(compilers)" title="Self-hosting (compilers)">self-hosting compiler</a>, <i>i.e.</i>, written in Rust, based on <a href="LLVM" title="LLVM">LLVM</a>.<sup id="cite_ref-Rust0.1_20-0" class="reference"><a href="#cite_note-Rust0.1-20"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-22" class="reference"><a href="#cite_note-22"><span class="cite-bracket">[</span>note 4<span class="cite-bracket">]</span></a></sup> The Rust ownership system was also in place by 2010.<sup id="cite_ref-MITTechReview_16-7" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> The Rust logo was developed in 2011 based on a bicycle <a href="Crankset#Chainring" title="Crankset">chainring</a>.<sup id="cite_ref-23" class="reference"><a href="#cite_note-23"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup>
</p><p>The first public release, Rust 0.1 was released on January 20, 2012<sup id="cite_ref-Rust0.1a_24-0" class="reference"><a href="#cite_note-Rust0.1a-24"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> for Windows, Linux, and MacOS.<sup id="cite_ref-ExtremeTechRust0.1_25-0" class="reference"><a href="#cite_note-ExtremeTechRust0.1-25"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup> The early 2010s saw increasing involvement from open source volunteers outside of Mozilla and outside of the United States. At Mozilla, executives would eventually employ over a dozen engineers to work on Rust full time over the next decade.<sup id="cite_ref-MITTechReview_16-8" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="2012–2015:_Evolution">2012–2015: Evolution</h3></div>
<p>The years from 2012 to 2015 were marked by substantial changes to the Rust <a href="Type_system" title="Type system">type system</a>, especially, removal of the typestate system, consolidation of other language features, and the removal of the <a href="Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collector</a>.<sup id="cite_ref-Klabnik2016ACMHistory_17-5" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 18:36">: 18:36 </span></sup><sup id="cite_ref-MITTechReview_16-9" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Memory management through the ownership system was gradually consolidated and expanded to prevent memory-related bugs. By 2013, the garbage collector feature was rarely used, and was removed by the team in favor of the ownership system.<sup id="cite_ref-MITTechReview_16-10" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Other changes during this time included the removal of <a href="Pure_function" title="Pure function">pure functions</a>, which were declared by an explicit <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">pure</code> annotation, in March 2013.<sup id="cite_ref-26" class="reference"><a href="#cite_note-26"><span class="cite-bracket">[</span>22<span class="cite-bracket">]</span></a></sup> Specialized syntax support for <a href="Channel_(programming)" title="Channel (programming)">channels</a> and various pointer types were removed to simplify the language.<sup id="cite_ref-Klabnik2016ACMHistory_17-6" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 22:32">: 22:32 </span></sup>
</p><p>Rust's expansion and consolidation was influenced by developers coming from <a href="C%2B%2B" title="C++">C++</a> (e.g., low-level performance of features), <a href="Scripting_language" title="Scripting language">scripting languages</a> (e.g., Cargo and package management), and <a href="Functional_programming" title="Functional programming">functional programming</a> (e.g., type systems development).<sup id="cite_ref-Klabnik2016ACMHistory_17-7" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 30:50">: 30:50 </span></sup>
</p><p>Graydon Hoare stepped down from Rust in 2013.<sup id="cite_ref-MITTechReview_16-11" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> This allowed it to evolve organically under a more federated governance structure, with a "core team" of initially six people,<sup id="cite_ref-Klabnik2016ACMHistory_17-8" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 21:45">: 21:45 </span></sup> around 30-40 developers total across various other teams,<sup id="cite_ref-Klabnik2016ACMHistory_17-9" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 22:22">: 22:22 </span></sup> and a Request for Comments (RFC) process for new language features added in March 2014.<sup id="cite_ref-Klabnik2016ACMHistory_17-10" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 33:47">: 33:47 </span></sup> The core team would grow to nine people by 2016<sup id="cite_ref-Klabnik2016ACMHistory_17-11" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 21:45">: 21:45 </span></sup> with over 1600 proposed RFCs.<sup id="cite_ref-Klabnik2016ACMHistory_17-12" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 34:08">: 34:08 </span></sup>
</p><p>According to Andrew Binstock writing for <i><a href="Dr._Dobb's_Journal" title="Dr. Dobb's Journal">Dr. Dobb's Journal</a></i> in January 2014, while Rust was "widely viewed as a remarkably elegant language", adoption slowed because it radically changed from version to version.<sup id="cite_ref-27" class="reference"><a href="#cite_note-27"><span class="cite-bracket">[</span>23<span class="cite-bracket">]</span></a></sup> Rust development at this time was focused on finalizing the language features and moving towards 1.0 so it could begin promising <a href="Backward_compatibility" title="Backward compatibility">backward compatibility</a>.<sup id="cite_ref-Klabnik2016ACMHistory_17-13" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 41:26">: 41:26 </span></sup>
</p><p>Six years after Mozilla sponsored its development, the first <a href="Stable_release" class="mw-redirect" title="Stable release">stable release</a>, Rust 1.0, was published on May 15, 2015.<sup id="cite_ref-MITTechReview_16-12" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> A year after the release, the Rust compiler had accumulated over 1,400 contributors and there were over 5,000 third-party libraries published on the Rust package management website Crates.io.<sup id="cite_ref-Klabnik2016ACMHistory_17-14" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 43:15">: 43:15 </span></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="2015–2020:_Servo_and_early_adoption">2015–2020: Servo and early adoption</h3></div>

<p>The development of the <a href="Servo_(software)" title="Servo (software)">Servo browser engine</a> continued in parallel with Rust, jointly funded by Mozilla and <a href="Samsung" title="Samsung">Samsung</a>.<sup id="cite_ref-28" class="reference"><a href="#cite_note-28"><span class="cite-bracket">[</span>24<span class="cite-bracket">]</span></a></sup> The teams behind the two projects worked in close collaboration; new features in Rust were tested out by the Servo team, and new features in Servo were used to give feedback back to the Rust team.<sup id="cite_ref-Klabnik2016ACMHistory_17-15" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 5:41">: 5:41 </span></sup> The first version of Servo was released in 2016.<sup id="cite_ref-MITTechReview_16-13" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> The <a href="Firefox" title="Firefox">Firefox</a> web browser shipped with Rust code as of 2016 (version 45),<sup id="cite_ref-Klabnik2016ACMHistory_17-16" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 53:30">: 53:30 </span></sup><sup id="cite_ref-29" class="reference"><a href="#cite_note-29"><span class="cite-bracket">[</span>25<span class="cite-bracket">]</span></a></sup> but components of Servo did not appear in Firefox until September 2017 (version 57) as part of the <a href="Gecko_(software)" title="Gecko (software)">Gecko</a> and <a href="Gecko_(software)#Quantum" title="Gecko (software)">Quantum</a> projects.<sup id="cite_ref-30" class="reference"><a href="#cite_note-30"><span class="cite-bracket">[</span>26<span class="cite-bracket">]</span></a></sup>
</p><p>Improvements were made to the Rust toolchain ecosystem during the years following 1.0 including <a href="#Rustfmt">Rustfmt</a>, <a href="Integrated_development_environment" title="Integrated development environment">integrated development environment</a> integration,<sup id="cite_ref-Klabnik2016ACMHistory_17-17" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 44:56">: 44:56 </span></sup> a regular compiler testing and release cycle,<sup id="cite_ref-Klabnik2016ACMHistory_17-18" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 46:48">: 46:48 </span></sup> a community <a href="Code_of_conduct" title="Code of conduct">code of conduct</a>, and community discussion organized through an <a href="IRC" title="IRC">IRC</a> chat.<sup id="cite_ref-Klabnik2016ACMHistory_17-19" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 50:36">: 50:36 </span></sup>
</p><p>The earliest adoption outside of Mozilla was by individual projects at Samsung, <a href="Facebook" title="Facebook">Facebook</a> (now <a href="Meta_Platforms" title="Meta Platforms">Meta Platforms</a>), <a href="Dropbox" title="Dropbox">Dropbox</a>, and others including Tilde, Inc. (the company behind <a href="Ember.js" title="Ember.js">ember.js</a>).<sup id="cite_ref-Klabnik2016ACMHistory_17-20" class="reference"><a href="#cite_note-Klabnik2016ACMHistory-17"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup><sup class="reference nowrap"><span title="Location: 55:44">: 55:44 </span></sup><sup id="cite_ref-MITTechReview_16-14" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> <a href="Amazon_Web_Services" title="Amazon Web Services">Amazon Web Services</a> followed in 2020.<sup id="cite_ref-MITTechReview_16-15" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Engineers cited performance, lack of a garbage collector, safety, and pleasantness of working in the language as reasons for the adoption, while acknowledging that it was a risky bet as Rust was new technology. Amazon developers cited a finding by Portuguese researchers that Rust code <a href="Energy_efficiency_in_computing" class="mw-redirect" title="Energy efficiency in computing">uses less energy</a> compared to similar code written in <a href="Java_(programming_language)" title="Java (programming language)">Java</a> and <a href="C%2B%2B" title="C++">C++</a>, behind only <a href="C_(programming_language)" title="C (programming language)">C</a>.<sup id="cite_ref-MITTechReview_16-16" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-2017PortugalEnergyStudy_31-0" class="reference"><a href="#cite_note-2017PortugalEnergyStudy-31"><span class="cite-bracket">[</span>27<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-32" class="reference"><a href="#cite_note-32"><span class="cite-bracket">[</span>note 5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="2020–present:_Mozilla_layoffs_and_Rust_Foundation">2020–present: Mozilla layoffs and Rust Foundation</h3></div>
<p>In August 2020, Mozilla laid off 250 of its 1,000 employees worldwide, as part of a corporate restructuring caused by the <a href="COVID-19_pandemic" title="COVID-19 pandemic">COVID-19 pandemic</a>.<sup id="cite_ref-33" class="reference"><a href="#cite_note-33"><span class="cite-bracket">[</span>28<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-34" class="reference"><a href="#cite_note-34"><span class="cite-bracket">[</span>29<span class="cite-bracket">]</span></a></sup> The team behind Servo was disbanded. The event raised concerns about the future of Rust, due to the overlap between the two projects.<sup id="cite_ref-35" class="reference"><a href="#cite_note-35"><span class="cite-bracket">[</span>30<span class="cite-bracket">]</span></a></sup> In the following week, the Rust Core Team acknowledged the severe impact of the layoffs and announced that plans for a Rust foundation were underway. The first goal of the foundation would be to take ownership of all <a href="Trademark" title="Trademark">trademarks</a> and <a href="Domain_name" title="Domain name">domain names</a>, and take financial responsibility for their costs.<sup id="cite_ref-36" class="reference"><a href="#cite_note-36"><span class="cite-bracket">[</span>31<span class="cite-bracket">]</span></a></sup>
</p><p>On February 8, 2021, the formation of the <a href="#Rust_Foundation">Rust Foundation</a> was announced by five founding companies: <a href="Amazon_Web_Services" title="Amazon Web Services">Amazon Web Services</a>, <a href="Google" title="Google">Google</a>, <a href="Huawei" title="Huawei">Huawei</a>, <a href="Microsoft" title="Microsoft">Microsoft</a>, and <a href="Mozilla" title="Mozilla">Mozilla</a>.<sup id="cite_ref-37" class="reference"><a href="#cite_note-37"><span class="cite-bracket">[</span>32<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-38" class="reference"><a href="#cite_note-38"><span class="cite-bracket">[</span>33<span class="cite-bracket">]</span></a></sup> The foundation, led by Shane Miller for its first two years, offered $20,000 grants and other support for programmers working on major Rust features.<sup id="cite_ref-MITTechReview_16-17" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> In a <a href="Blog" title="Blog">blog</a> post published on April 6, 2021, Google announced support for Rust within the <a href="Android_Open_Source_Project" class="mw-redirect" title="Android Open Source Project">Android Open Source Project</a> as an alternative to C/C++.<sup id="cite_ref-39" class="reference"><a href="#cite_note-39"><span class="cite-bracket">[</span>34<span class="cite-bracket">]</span></a></sup>
</p><p>On November 22, 2021, the Moderation Team, which was responsible for enforcing the community code of conduct, announced their resignation "in protest of the Core Team placing themselves unaccountable to anyone but themselves".<sup id="cite_ref-moderation_40-0" class="reference"><a href="#cite_note-moderation-40"><span class="cite-bracket">[</span>35<span class="cite-bracket">]</span></a></sup> In May 2022, the Rust Core Team, other lead programmers, and certain members of the Rust Foundation board implemented governance reforms in response to the incident.<sup id="cite_ref-41" class="reference"><a href="#cite_note-41"><span class="cite-bracket">[</span>36<span class="cite-bracket">]</span></a></sup>
</p><p>The Rust Foundation posted a draft for a new trademark policy on April 6, 2023, including rules for how the Rust logo and name can be used, which resulted in negative reactions from Rust users and contributors.<sup id="cite_ref-42" class="reference"><a href="#cite_note-42"><span class="cite-bracket">[</span>37<span class="cite-bracket">]</span></a></sup>
</p><p>On February 26, 2024, the U.S. <a href="White_House" title="White House">White House</a> through the <a href="Office_of_the_National_Cyber_Director" title="Office of the National Cyber Director">Office of the National Cyber Director</a> released a 19-page press report urging software development to move away from C and C++ and encouraging the use of memory-safe languages like C#, Go, Java, Ruby, Swift, and Rust.<sup id="cite_ref-WhiteHouse1_43-0" class="reference"><a href="#cite_note-WhiteHouse1-43"><span class="cite-bracket">[</span>38<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-WhiteHouse2_44-0" class="reference"><a href="#cite_note-WhiteHouse2-44"><span class="cite-bracket">[</span>39<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-WhiteHouseFullReport_45-0" class="reference"><a href="#cite_note-WhiteHouseFullReport-45"><span class="cite-bracket">[</span>40<span class="cite-bracket">]</span></a></sup> The report has been interpreted as increasing interest in Rust.<sup id="cite_ref-WhiteHouse3_46-0" class="reference"><a href="#cite_note-WhiteHouse3-46"><span class="cite-bracket">[</span>41<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-WhiteHouse4_47-0" class="reference"><a href="#cite_note-WhiteHouse4-47"><span class="cite-bracket">[</span>42<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Syntax_and_features">Syntax and features</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">Main article: <a href="Rust_syntax" title="Rust syntax">Rust syntax</a></div>
<p>Rust's <a href="Syntax_(programming_languages)" title="Syntax (programming languages)">syntax</a> is similar to that of <a href="C_(programming_language)" title="C (programming language)">C</a> and C++,<sup id="cite_ref-48" class="reference"><a href="#cite_note-48"><span class="cite-bracket">[</span>43<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:4_49-0" class="reference"><a href="#cite_note-:4-49"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup> although many of its features were influenced by <a href="Functional_programming" title="Functional programming">functional programming</a> languages such as <a href="OCaml" title="OCaml">OCaml</a>.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019263_50-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019263-50"><span class="cite-bracket">[</span>45<span class="cite-bracket">]</span></a></sup> Hoare has described Rust as targeted at frustrated C++ developers and emphasized features such as safety, control of <a href="Memory_layout" class="mw-redirect" title="Memory layout">memory layout</a>, and <a href="Concurrency_(computer_science)" title="Concurrency (computer science)">concurrency</a>.<sup id="cite_ref-Hoare2010_18-2" class="reference"><a href="#cite_note-Hoare2010-18"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> Safety in Rust includes the guarantees of memory safety, type safety, and lack of data races.
</p>
<div class="mw-heading mw-heading3"><h3 id="Hello_World_program">Hello World program</h3></div>
<p>Below is a <a href="%22Hello%2C_World!%22_program" title="&quot;Hello, World!&quot; program">"Hello, World!" program</a> in Rust. The <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">fn</span></code> keyword denotes a <a href="Function_(computer_programming)" title="Function (computer programming)">function</a>, and the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="fm">println!</span></code> <a href="Macro_(computer_science)" title="Macro (computer science)">macro</a> (see <a href="#Macros">§&nbsp;Macros</a>) prints the message to <a href="Standard_output" class="mw-redirect" title="Standard output">standard output</a>.<sup id="cite_ref-FOOTNOTEKlabnikNichols20195–6_51-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols20195–6-51"><span class="cite-bracket">[</span>46<span class="cite-bracket">]</span></a></sup> <a href="Statement_(computer_science)" title="Statement (computer science)">Statements</a> in Rust are separated by <a href="Semicolon#Programming" title="Semicolon">semicolons</a>.
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"Hello, World!"</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Variables">Variables</h3></div>
<p><a href="Variable_(computer_science)" title="Variable (computer science)">Variables</a> in Rust are defined through the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kd">let</span></code> keyword.<sup id="cite_ref-FOOTNOTEKlabnikNichols202332_52-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202332-52"><span class="cite-bracket">[</span>47<span class="cite-bracket">]</span></a></sup> The example below assigns a value to the variable with name <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">foo</span></code> and outputs its value.
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">foo</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"The value of foo is {foo}"</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<p>Variables are <a href="Immutable_object" title="Immutable object">immutable</a> by default, but adding the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">mut</span></code> keyword allows the variable to be mutated.<sup id="cite_ref-FOOTNOTEKlabnikNichols202332–33_53-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202332–33-53"><span class="cite-bracket">[</span>48<span class="cite-bracket">]</span></a></sup> The following example uses <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="c1">//</span></code>, which denotes the start of a <a href="Comment_(computer_programming)" title="Comment (computer programming)">comment</a>.<sup id="cite_ref-FOOTNOTEKlabnikNichols202349–50_54-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202349–50-54"><span class="cite-bracket">[</span>49<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="c1">// This code would not compile without adding "mut".</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">foo</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span><span class="w"> </span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"The value of foo is {foo}"</span><span class="p">);</span>
<span class="w"> </span><span class="n">foo</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">20</span><span class="p">;</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"The value of foo is {foo}"</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<p>Multiple <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kd">let</span></code> expressions can define multiple variables with the same name, known as <a href="Variable_shadowing" title="Variable shadowing">variable shadowing</a>. Variable shadowing allows transforming variables without having to name the variables differently.<sup id="cite_ref-FOOTNOTEKlabnikNichols202334–36_55-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202334–36-55"><span class="cite-bracket">[</span>50<span class="cite-bracket">]</span></a></sup> The example below declares a new variable with the same name that is double the original value:
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">foo</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
<span class="w"> </span><span class="c1">// This will output "The value of foo is 10"</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"The value of foo is {foo}"</span><span class="p">);</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">foo</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">foo</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<span class="w"> </span><span class="c1">// This will output "The value of foo is 20"</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"The value of foo is {foo}"</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<p>Variable shadowing is also possible for values of different types. For example, going from a string to its length:
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">letters</span><span class="p">:</span><span class="w"> </span><span class="kt">str</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">"abc"</span><span class="p">;</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">letters</span><span class="p">:</span><span class="w"> </span><span class="kt">usize</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">letters</span><span class="p">.</span><span class="n">len</span><span class="p">();</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Block_expressions_and_control_flow">Block expressions and control flow</h3></div>
<p>A <i>block expression</i> is delimited by <a href="Bracket#Curly_brackets" title="Bracket">curly brackets</a>. When the last expression inside a block does not end with a semicolon, the block evaluates to the value of that trailing expression:<sup id="cite_ref-FOOTNOTEKlabnikNichols20236,_47,_53_56-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols20236,_47,_53-56"><span class="cite-bracket">[</span>51<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"this is inside the block"</span><span class="p">);</span>
<span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">2</span>
<span class="w"> </span><span class="p">};</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"1 + 2 = {x}"</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<p>Trailing expressions of function bodies are used as the return value:<sup id="cite_ref-FOOTNOTEKlabnikNichols202347–48_57-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202347–48-57"><span class="cite-bracket">[</span>52<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">add_two</span><span class="p">(</span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">2</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="if_expressions"><code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">if</span></code> expressions</h4></div>
<p>An <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">if</span></code> <a href="Conditional_expression" class="mw-redirect" title="Conditional expression">conditional expression</a> executes code based on whether the given value is <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kc">true</span></code>. <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">else</span></code> can be used for when the value evaluates to <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kc">false</span></code>, and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">else</span><span class="w"> </span><span class="k">if</span></code> can be used for combining multiple expressions.<sup id="cite_ref-FOOTNOTEKlabnikNichols202350–53_58-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202350–53-58"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"value is greater than five"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>

<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">7</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"value is divisible by 7"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">5</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"value is divisible by 5"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"value is not divisible by 7 or 5"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<p><code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">if</span></code> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">else</span></code> blocks can evaluate to a value, which can then be assigned to a variable:<sup id="cite_ref-FOOTNOTEKlabnikNichols202350–53_58-1" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202350–53-58"><span class="cite-bracket">[</span>53<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">new_x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">2</span><span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">};</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{new_x}"</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="while_loops"><code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">while</span></code> loops</h4></div>
<p><code><a href="While_loop" title="While loop">while</a></code> can be used to repeat a block of code while a condition is met.<sup id="cite_ref-FOOTNOTEKlabnikNichols202356_59-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202356-59"><span class="cite-bracket">[</span>54<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="c1">// Iterate over all integers from 4 to 10</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">value</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">4</span><span class="p">;</span>
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="o">&lt;=</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"value = {value}"</span><span class="p">);</span>
<span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="for_loops_and_iterators"><code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">for</span></code> loops and iterators</h4></div>
<p><a href="For_loop" title="For loop">For loops</a> in Rust loop over elements of a collection.<sup id="cite_ref-FOOTNOTEKlabnikNichols202357–58_60-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202357–58-60"><span class="cite-bracket">[</span>55<span class="cite-bracket">]</span></a></sup>
<code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">for</span></code> expressions work over any <a href="Iterator" title="Iterator">iterator</a> type.
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="c1">// Using `for` with range syntax for the same functionality as above</span>
<span class="w"> </span><span class="c1">// The syntax 4..=10 means the range from 4 to 10, up to and including 10.</span>
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="mi">4</span><span class="o">..=</span><span class="mi">10</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"value = {value}"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<p>In the above code, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="mi">4</span><span class="o">..=</span><span class="mi">10</span></code> is a value of type <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">Range</span></code> which implements the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="nb">Iterator</span></code> trait. The code within the curly braces is applied to each element returned by the iterator.
</p><p>Iterators can be combined with functions over iterators like <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">map</span></code>, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">filter</span></code>, and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">sum</span></code>. For example, the following adds up all numbers between 1 and 100 that are multiples of 3:
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="p">(</span><span class="mi">1</span><span class="o">..=</span><span class="mi">100</span><span class="p">).</span><span class="n">filter</span><span class="p">(</span><span class="o">|&amp;</span><span class="n">x</span><span class="o">|</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">3</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="mi">0</span><span class="p">).</span><span class="n">sum</span><span class="p">()</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="loop_and_break_statements"><code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">loop</span></code> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">break</span></code> statements</h4></div>
<p>More generally, the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">loop</span></code> keyword allows repeating a portion of code until a <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">break</span></code> occurs. <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">break</span></code> may optionally exit the loop with a value. In the case of nested loops, labels denoted by <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">'</span><span class="na">label_name</span></code> can be used to break an outer loop rather than the innermost loop.<sup id="cite_ref-FOOTNOTEKlabnikNichols202354–56_61-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202354–56-61"><span class="cite-bracket">[</span>56<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">value</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">456</span><span class="p">;</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">loop</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="n">value</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">break</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="p">};</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"largest power of ten that is smaller than or equal to value: {y}"</span><span class="p">);</span>

<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">up</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="o">'</span><span class="na">outer</span><span class="p">:</span><span class="w"> </span><span class="nc">loop</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">down</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">120</span><span class="p">;</span>
<span class="w"> </span><span class="k">loop</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">up</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mi">100</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">break</span><span class="w"> </span><span class="nl">'outer</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>

<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">down</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="mi">4</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">break</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>

<span class="w"> </span><span class="n">down</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<span class="w"> </span><span class="n">up</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"up: {up}, down: {down}"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="n">up</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">2</span><span class="p">;</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Pattern_matching">Pattern matching</h3></div>
<p>The <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">match</span></code> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">if</span><span class="w"> </span><span class="kd">let</span></code> expressions can be used for <a href="Pattern_matching" title="Pattern matching">pattern matching</a>. For example, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">match</span></code> can be used to double an optional integer value if present, and return zero otherwise:<sup id="cite_ref-FOOTNOTEKlabnikNichols2019104–109_62-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019104–109-62"><span class="cite-bracket">[</span>57<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">double</span><span class="p">(</span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="nb">Option</span><span class="o">&lt;</span><span class="kt">u64</span><span class="o">&gt;</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">u64</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">match</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="nb">Some</span><span class="p">(</span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span>
<span class="w"> </span><span class="nb">None</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="mi">0</span><span class="p">,</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<p>Equivalently, this can be written with <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">if</span><span class="w"> </span><span class="kd">let</span></code> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">else</span></code>:
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">double</span><span class="p">(</span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="nb">Option</span><span class="o">&lt;</span><span class="kt">u64</span><span class="o">&gt;</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">u64</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nb">Some</span><span class="p">(</span><span class="n">y</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">2</span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="k">else</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="mi">0</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Types">Types</h3></div>
<p>Rust is <a href="Strongly_typed" class="mw-redirect" title="Strongly typed">strongly typed</a> and <a href="Statically_typed" class="mw-redirect" title="Statically typed">statically typed</a>, meaning that the types of all variables must be known at compilation time. Assigning a value of a particular type to a differently typed variable causes a <a href="Compilation_error" title="Compilation error">compilation error</a>. <a href="Type_inference" title="Type inference">Type inference</a> is used to determine the type of variables if unspecified.<sup id="cite_ref-FOOTNOTEKlabnikNichols201924_63-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201924-63"><span class="cite-bracket">[</span>58<span class="cite-bracket">]</span></a></sup>
</p><p>The default integer type is <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">i32</span></code>, and the default <a href="Floating_point" class="mw-redirect" title="Floating point">floating point</a> type is <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">f64</span></code>. If the type of a <a href="Literal_(computer_programming)" title="Literal (computer programming)">literal</a> number is not explicitly provided, it is either inferred from the context or the default type is used.<sup id="cite_ref-FOOTNOTEKlabnikNichols201936–38_64-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201936–38-64"><span class="cite-bracket">[</span>59<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Primitive_types">Primitive types</h4></div>
<p><a href="Integer_type" class="mw-redirect" title="Integer type">Integer types</a> in Rust are named based on the <a href="Signedness" title="Signedness">signedness</a> and the number of bits the type takes. For example, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">i32</span></code> is a signed integer that takes 32 bits of storage, whereas <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">u8</span></code> is unsigned and only takes 8 bits of storage. <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">isize</span></code> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">usize</span></code> take storage depending on the architecture of the computer that runs the code, for example, on computers with <a href="32-bit_architecture" class="mw-redirect" title="32-bit architecture">32-bit architectures</a>, both types will take up 32 bits of space.
</p><p>By default, integer literals are in base-10, but different <a href="Radix" title="Radix">radices</a> are supported with prefixes, for example, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="mb">0b11</span></code> for <a href="Binary_number" title="Binary number">binary numbers</a>, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="mo">0o567</span></code> for <a href="Octal" title="Octal">octals</a>, and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="mh">0xDB</span></code> for <a href="Hexadecimal" title="Hexadecimal">hexadecimals</a>. By default, integer literals default to <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">i32</span></code> as its type. Suffixes such as <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="mi">4</span><span class="k">u32</span></code> can be used to explicitly set the type of a literal.<sup id="cite_ref-FOOTNOTEKlabnikNichols202336–38_65-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202336–38-65"><span class="cite-bracket">[</span>60<span class="cite-bracket">]</span></a></sup> Byte literals such as <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="sc">b'X'</span></code> are available to represent the <a href="ASCII" title="ASCII">ASCII</a> value (as a <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">u8</span></code>) of a specific character.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023502_66-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023502-66"><span class="cite-bracket">[</span>61<span class="cite-bracket">]</span></a></sup>
</p><p>The <a href="Boolean_type" class="mw-redirect" title="Boolean type">Boolean type</a> is referred to as <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">bool</span></code> which can take a value of either <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kc">true</span></code> or <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kc">false</span></code>. A <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">char</span></code> takes up 32 bits of space and represents a Unicode scalar value: a <a href="Unicode_codepoint" class="mw-redirect" title="Unicode codepoint">Unicode codepoint</a> that is not a <a href="Universal_Character_Set_characters#Surrogates" title="Universal Character Set characters">surrogate</a>.<sup id="cite_ref-67" class="reference"><a href="#cite_note-67"><span class="cite-bracket">[</span>62<span class="cite-bracket">]</span></a></sup> <a href="IEEE_754" title="IEEE 754">IEEE 754</a> floating point numbers are supported with <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">f32</span></code> for <a href="Single_precision_float" class="mw-redirect" title="Single precision float">single precision floats</a> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="kt">f64</span></code> for <a href="Double_precision_float" class="mw-redirect" title="Double precision float">double precision floats</a>.<sup id="cite_ref-FOOTNOTEKlabnikNichols201938–40_68-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201938–40-68"><span class="cite-bracket">[</span>63<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Compound_types">Compound types</h4></div>
<p>Compound types can contain multiple values. Tuples are fixed-size lists that can contain values whose types can be different. Arrays are fixed-size lists whose values are of the same type. Expressions of the tuple and array types can be written through listing the values, and can be accessed with <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="p">.</span><span class="n">index</span></code> or <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="p">[</span><span class="n">index</span><span class="p">]</span></code>:<sup id="cite_ref-FOOTNOTEKlabnikNichols202340–42_69-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202340–42-69"><span class="cite-bracket">[</span>64<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="kd">let</span><span class="w"> </span><span class="n">tuple</span><span class="p">:</span><span class="w"> </span><span class="p">(</span><span class="kt">u32</span><span class="p">,</span><span class="w"> </span><span class="kt">bool</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="kc">true</span><span class="p">);</span>
<span class="kd">let</span><span class="w"> </span><span class="n">array</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="kt">i8</span><span class="p">;</span><span class="w"> </span><span class="mi">5</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">];</span>
<span class="kd">let</span><span class="w"> </span><span class="n">value</span><span class="p">:</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tuple</span><span class="p">.</span><span class="mi">1</span><span class="p">;</span><span class="w"> </span><span class="c1">// true</span>
<span class="kd">let</span><span class="w"> </span><span class="n">value</span><span class="p">:</span><span class="w"> </span><span class="kt">i8</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">array</span><span class="p">[</span><span class="mi">2</span><span class="p">];</span><span class="w"> </span><span class="c1">// 3</span>
</pre></div>
<p>Arrays can also be constructed through copying a single value a number of times:<sup id="cite_ref-FOOTNOTEKlabnikNichols202342_70-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202342-70"><span class="cite-bracket">[</span>65<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="kd">let</span><span class="w"> </span><span class="n">array2</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="kt">char</span><span class="p">;</span><span class="w"> </span><span class="mi">10</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="sc">' '</span><span class="p">;</span><span class="w"> </span><span class="mi">10</span><span class="p">];</span>
</pre></div>
<p><br>
</p>
<div class="mw-heading mw-heading3"><h3 id="Ownership_and_references">Ownership and references</h3></div>
<p>Rust's ownership system consists of rules that ensure memory safety without using a garbage collector. At compile time, each value must be attached to a variable called the <i>owner</i> of that value, and every value must have exactly one owner.<sup id="cite_ref-FOOTNOTEKlabnikNichols201959–61_71-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201959–61-71"><span class="cite-bracket">[</span>66<span class="cite-bracket">]</span></a></sup> Values are moved between different owners through assignment or passing a value as a function parameter. Values can also be <i>borrowed,</i> meaning they are temporarily passed to a different function before being returned to the owner.<sup id="cite_ref-FOOTNOTEKlabnikNichols201963–68_72-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201963–68-72"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup> With these rules, Rust can prevent the creation and use of <a href="Dangling_pointers" class="mw-redirect" title="Dangling pointers">dangling pointers</a>:<sup id="cite_ref-FOOTNOTEKlabnikNichols201963–68_72-1" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201963–68-72"><span class="cite-bracket">[</span>67<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEKlabnikNichols201974–75_73-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201974–75-73"><span class="cite-bracket">[</span>68<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">print_string</span><span class="p">(</span><span class="n">s</span><span class="p">:</span><span class="w"> </span><span class="nb">String</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="n">s</span><span class="p">);</span>
<span class="p">}</span>

<span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">s</span><span class="p">:</span><span class="w"> </span><span class="nb">String</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">String</span><span class="p">::</span><span class="n">from</span><span class="p">(</span><span class="s">"Hello, World"</span><span class="p">);</span>
<span class="w"> </span><span class="n">print_string</span><span class="p">(</span><span class="n">s</span><span class="p">);</span><span class="w"> </span><span class="c1">// s consumed by print_string</span>
<span class="w"> </span><span class="c1">// s has been moved, so cannot be used any more</span>
<span class="w"> </span><span class="c1">// another print_string(s); would result in a compile error</span>
<span class="p">}</span>
</pre></div>
<p>The function <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">print_string</span></code> takes ownership over the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="nb">String</span></code> value passed in; Alternatively, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">&amp;</span></code> can be used to indicate a <a href="Reference_(computer_science)" title="Reference (computer science)">reference</a> type (in <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">&amp;</span><span class="nb">String</span></code>) and to create a reference (in <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">&amp;</span><span class="n">s</span></code>):<sup id="cite_ref-FOOTNOTEKlabnikNichols202371–72_74-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202371–72-74"><span class="cite-bracket">[</span>69<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">print_string</span><span class="p">(</span><span class="n">s</span><span class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span class="nb">String</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{}"</span><span class="p">,</span><span class="w"> </span><span class="n">s</span><span class="p">);</span>
<span class="p">}</span>

<span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">s</span><span class="p">:</span><span class="w"> </span><span class="nb">String</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">String</span><span class="p">::</span><span class="n">from</span><span class="p">(</span><span class="s">"Hello, World"</span><span class="p">);</span>
<span class="w"> </span><span class="n">print_string</span><span class="p">(</span><span class="o">&amp;</span><span class="n">s</span><span class="p">);</span><span class="w"> </span><span class="c1">// s borrowed by print_string</span>
<span class="w"> </span><span class="n">print_string</span><span class="p">(</span><span class="o">&amp;</span><span class="n">s</span><span class="p">);</span><span class="w"> </span><span class="c1">// s has not been consumed; we can call the function many times</span>
<span class="p">}</span>
</pre></div>
<p><br>
Because of these ownership rules, Rust types are known as <i><a href="Linear_types" class="mw-redirect" title="Linear types">linear</a></i> or <i>affine</i> types, meaning each value can be used exactly once. This enforces a form of <a href="Software_fault_isolation" class="mw-redirect" title="Software fault isolation">software fault isolation</a> as the owner of a value is solely responsible for its correctness and deallocation.<sup id="cite_ref-BeyondSafety_75-0" class="reference"><a href="#cite_note-BeyondSafety-75"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup>
</p><p>When a value goes out of scope, it is <i>dropped</i> by running its <a href="Destructor_(computer_programming)" title="Destructor (computer programming)">destructor</a>. The destructor may be programmatically defined through implementing the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="nb">Drop</span></code> <a href="#Traits">trait</a>. This helps manage resources such as file handles, network sockets, and <a href="Lock_(computer_science)" title="Lock (computer science)">locks</a>, since when objects are dropped, the resources associated with them are closed or released automatically.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023327–30_76-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023327–30-76"><span class="cite-bracket">[</span>71<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Lifetimes">Lifetimes</h4></div>
<p><a href="Object_lifetime" title="Object lifetime">Object lifetime</a> refers to the period of time during which a reference is valid; that is, the time between the object creation and destruction.<sup id="cite_ref-77" class="reference"><a href="#cite_note-77"><span class="cite-bracket">[</span>72<span class="cite-bracket">]</span></a></sup> These <i>lifetimes</i> are implicitly associated with all Rust reference types. While often inferred, they can also be indicated explicitly with named lifetime parameters (often denoted <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">'</span><span class="na">a</span></code>, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">'</span><span class="na">b</span></code>, and so on).<sup id="cite_ref-78" class="reference"><a href="#cite_note-78"><span class="cite-bracket">[</span>73<span class="cite-bracket">]</span></a></sup>
</p><p>Lifetimes in Rust can be thought of as <a href="Scope_(computer_science)" title="Scope (computer science)">lexically scoped</a>, meaning that the duration of an object lifetime is inferred from the set of locations in the source code (i.e., function, line, and column numbers) for which a variable is valid.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019194_79-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019194-79"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup> For example, a reference to a local variable has a lifetime corresponding to the block it is defined in:<sup id="cite_ref-FOOTNOTEKlabnikNichols2019194_79-1" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019194-79"><span class="cite-bracket">[</span>74<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span><span class="w"> </span><span class="c1">// ------------------+- Lifetime 'a</span>
<span class="w"> </span><span class="c1">// |</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">r</span><span class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">x</span><span class="p">;</span><span class="w"> </span><span class="c1">// -+-- Lifetime 'b |</span>
<span class="w"> </span><span class="c1">// | |</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"r: {}"</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">);</span><span class="w"> </span><span class="c1">// | |</span>
<span class="w"> </span><span class="c1">// | |</span>
<span class="w"> </span><span class="c1">// -+ |</span>
<span class="p">}</span><span class="w"> </span><span class="c1">// ------------------+</span>
</pre></div>
<p>The borrow checker in the Rust compiler then enforces that references are only used in the locations of the source code where the associated lifetime is valid.<sup id="cite_ref-FOOTNOTEKlabnikNichols201975,_134_80-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201975,_134-80"><span class="cite-bracket">[</span>75<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-81" class="reference"><a href="#cite_note-81"><span class="cite-bracket">[</span>76<span class="cite-bracket">]</span></a></sup> In the example above, storing a reference to variable <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">x</span></code> in <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">r</span></code> is valid, as variable <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">x</span></code> has a longer lifetime (<code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">'</span><span class="na">a</span></code>) than variable <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">r</span></code> (<code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">'</span><span class="na">b</span></code>). However, when <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">x</span></code> has a shorter lifetime, the borrow checker would reject the program:
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">r</span><span class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span class="kt">i32</span><span class="p">;</span><span class="w"> </span><span class="c1">// ------------------+- Lifetime 'a</span>
<span class="w"> </span><span class="c1">// |</span>
<span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="c1">// |</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">5</span><span class="p">;</span><span class="w"> </span><span class="c1">// -+-- Lifetime 'b |</span>
<span class="w"> </span><span class="n">r</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="o">&amp;</span><span class="n">x</span><span class="p">;</span><span class="w"> </span><span class="c1">// ERROR: x does | |</span>
<span class="w"> </span><span class="p">}</span><span class="w"> </span><span class="c1">// not live long -| |</span>
<span class="w"> </span><span class="c1">// enough |</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"r: {}"</span><span class="p">,</span><span class="w"> </span><span class="n">r</span><span class="p">);</span><span class="w"> </span><span class="c1">// |</span>
<span class="p">}</span><span class="w"> </span><span class="c1">// ------------------+</span>
</pre></div>
<p>Since the lifetime of the referenced variable (<code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">'</span><span class="na">b</span></code>) is shorter than the lifetime of the variable holding the reference (<code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">'</span><span class="na">a</span></code>), the borrow checker errors, preventing <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">x</span></code> from being used from outside its scope.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019194–195_82-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019194–195-82"><span class="cite-bracket">[</span>77<span class="cite-bracket">]</span></a></sup>
</p><p>Lifetimes can be indicated using explicit <i>lifetime parameters</i> on function arguments. For example, the following code specifies that the reference returned by the function has the same lifetime as <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">original</span></code> (and <i>not</i> necessarily the same lifetime as <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">prefix</span></code>):<sup id="cite_ref-FOOTNOTEKlabnikNichols2023208–12_83-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023208–12-83"><span class="cite-bracket">[</span>78<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">remove_prefix</span><span class="o">&lt;'</span><span class="na">a</span><span class="o">&gt;</span><span class="p">(</span><span class="k">mut</span><span class="w"> </span><span class="n">original</span><span class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span class="o">'</span><span class="na">a</span><span class="w"> </span><span class="kt">str</span><span class="p">,</span><span class="w"> </span><span class="n">prefix</span><span class="p">:</span><span class="w"> </span><span class="kp">&amp;</span><span class="kt">str</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kp">&amp;</span><span class="o">'</span><span class="na">a</span><span class="w"> </span><span class="kt">str</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">original</span><span class="p">.</span><span class="n">starts_with</span><span class="p">(</span><span class="n">prefix</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">original</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">original</span><span class="p">[</span><span class="n">prefix</span><span class="p">.</span><span class="n">len</span><span class="p">()</span><span class="o">..</span><span class="p">];</span>
<span class="w"> </span><span class="p">}</span>
<span class="w"> </span><span class="n">original</span>
<span class="p">}</span>
</pre></div>
<p>In the compiler, ownership and lifetimes work together to prevent memory safety issues such as dangling pointers.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023[httpsdocrust-langorgbookch04-02-references-and-borrowinghtml_4.2._References_and_Borrowing]_84-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023[httpsdocrust-langorgbookch04-02-references-and-borrowinghtml_4.2._References_and_Borrowing]-84"><span class="cite-bracket">[</span>79<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Pearce_85-0" class="reference"><a href="#cite_note-Pearce-85"><span class="cite-bracket">[</span>80<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="User-defined_types">User-defined types</h3></div>
<p>User-defined types are created with the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">struct</span></code> or <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">enum</span></code> keywords. The <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">struct</span></code> keyword is used to denote a <a href="Record_(computer_science)" title="Record (computer science)">record type</a> that groups multiple related values.<sup id="cite_ref-FOOTNOTEKlabnikNichols201983_86-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201983-86"><span class="cite-bracket">[</span>81<span class="cite-bracket">]</span></a></sup> <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">enum</span></code>s can take on different variants at runtime, with its capabilities similar to <a href="Algebraic_data_types" class="mw-redirect" title="Algebraic data types">algebraic data types</a> found in functional programming languages.<sup id="cite_ref-FOOTNOTEKlabnikNichols201997_87-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201997-87"><span class="cite-bracket">[</span>82<span class="cite-bracket">]</span></a></sup> Both records and enum variants can contain <a href="Field_(computer_science)" title="Field (computer science)">fields</a> with different types.<sup id="cite_ref-FOOTNOTEKlabnikNichols201998–101_88-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201998–101-88"><span class="cite-bracket">[</span>83<span class="cite-bracket">]</span></a></sup> Alternative names, or aliases, for the same type can be defined with the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">type</span></code> keyword.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019438–440_89-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019438–440-89"><span class="cite-bracket">[</span>84<span class="cite-bracket">]</span></a></sup>
</p><p>The <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">impl</span></code> keyword can define methods for a user-defined type. Data and functions are defined separately. Implementations fulfill a role similar to that of <a href="Class_(computer_programming)" title="Class (computer programming)">classes</a> within other languages.<sup id="cite_ref-FOOTNOTEKlabnikNichols201993_90-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201993-90"><span class="cite-bracket">[</span>85<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Standard_library">Standard library</h4></div>
<p>The Rust <a href="Standard_library" title="Standard library">standard library</a> defines and implements many widely used custom data types, including core data structures such as <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="nb">Vec</span></code>, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="nb">Option</span></code>, and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">HashMap</span></code>, as well as <a href="Smart_pointer" title="Smart pointer">smart pointer</a> types. Rust also provides a way to exclude most of the standard library using the attribute <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="cp">#![no_std]</span></code>, for applications such as embedded devices. Internally, the standard library is divided into three parts, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">core</span></code>, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">alloc</span></code>, and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">std</span></code>, where <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">std</span></code> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">alloc</span></code> are excluded by <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="cp">#![no_std]</span></code>.<sup id="cite_ref-FOOTNOTEGjengset2021213–215_91-0" class="reference"><a href="#cite_note-FOOTNOTEGjengset2021213–215-91"><span class="cite-bracket">[</span>86<span class="cite-bracket">]</span></a></sup>
</p><p>Rust uses <a href="Option_type" title="Option type"><code>Option</code></a> to define optional values, which can be matched using <code>if let</code> or <code>match</code> to access the inner value:<sup id="cite_ref-FOOTNOTEKlabnikNichols2023108–110,_113–114,_116–117_92-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023108–110,_113–114,_116–117-92"><span class="cite-bracket">[</span>87<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">name1</span><span class="p">:</span><span class="w"> </span><span class="nb">Option</span><span class="o">&lt;&amp;</span><span class="kt">str</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">None</span><span class="p">;</span>
<span class="w"> </span><span class="c1">// In this case, nothing will be printed out</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nb">Some</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">name1</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{name}"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>

<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">name2</span><span class="p">:</span><span class="w"> </span><span class="nb">Option</span><span class="o">&lt;&amp;</span><span class="kt">str</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">Some</span><span class="p">(</span><span class="s">"Matthew"</span><span class="p">);</span>
<span class="w"> </span><span class="c1">// In this case, the word "Matthew" will be printed out</span>
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nb">Some</span><span class="p">(</span><span class="n">name</span><span class="p">)</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">name2</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{name}"</span><span class="p">);</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading3"><h3 id="Pointers">Pointers</h3></div>
<p>The <code>&amp;</code> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">&amp;</span><span class="k">mut</span></code> reference types are guaranteed to not be null and point to valid memory.<sup id="cite_ref-FOOTNOTEGjengset2021155-156_93-0" class="reference"><a href="#cite_note-FOOTNOTEGjengset2021155-156-93"><span class="cite-bracket">[</span>88<span class="cite-bracket">]</span></a></sup> The raw pointer types <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">*</span><span class="k">const</span></code> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">*</span><span class="k">mut</span></code> opt out of the safety guarantees, thus they may be null or invalid; however, it is impossible to dereference them unless the code is explicitly declared unsafe through the use of an <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">unsafe</span></code> block.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023421–423_94-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023421–423-94"><span class="cite-bracket">[</span>89<span class="cite-bracket">]</span></a></sup> Unlike dereferencing, the creation of raw pointers is allowed inside safe Rust code.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019418–427_95-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019418–427-95"><span class="cite-bracket">[</span>90<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Type_conversion">Type conversion</h3></div>
<div class="excerpt-block"><style data-mw-deduplicate="TemplateStyles:r1066933788">
/* start https://en.wikipedia.org/ */


.mw-parser-output .excerpt-hat .mw-editsection-like{font-style:normal}


/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable dablink excerpt-hat selfref">This section is an excerpt from <a href="Type_conversion#Rust" title="Type conversion">Type conversion § Rust</a>.<span class="mw-editsection-like "><span class="mw-editsection-bracket">[</span><a class="external text external" href="https://en.wikipedia.org/w/index.php?title=Type_conversion&amp;action=edit">edit</a><span class="mw-editsection-bracket">]</span></span></div><div class="excerpt">
<p>Rust provides no implicit type conversion (coercion) between most primitive types. But, explicit type conversion (casting) can be performed using the <code>as</code> keyword.<sup id="cite_ref-96" class="reference"><a href="#cite_note-96"><span class="cite-bracket">[</span>91<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">1000</span><span class="p">;</span>
<span class="fm">println!</span><span class="p">(</span><span class="s">"1000 as a u16 is: {}"</span><span class="p">,</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">u16</span><span class="p">);</span>
</pre></div></div></div>

<div class="mw-heading mw-heading3"><h3 id="Polymorphism">Polymorphism</h3></div>
<p>Rust supports <a href="Bounded_parametric_polymorphism" class="mw-redirect" title="Bounded parametric polymorphism">bounded parametric polymorphism</a> through <a href="Trait_(computer_programming)" title="Trait (computer programming)">traits</a> and <a href="Generic_function" title="Generic function">generic functions</a>.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023378_97-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023378-97"><span class="cite-bracket">[</span>92<span class="cite-bracket">]</span></a></sup> Common behavior between types may be declared using traits and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">impl</span></code>s:<sup id="cite_ref-FOOTNOTEKlabnikNichols2023192–198_98-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023192–198-98"><span class="cite-bracket">[</span>93<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">trait</span><span class="w"> </span><span class="n">Zero</span><span class="p">:</span><span class="w"> </span><span class="nb">Sized</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">zero</span><span class="p">()</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nc">Self</span><span class="p">;</span>
<span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">is_zero</span><span class="p">(</span><span class="o">&amp;</span><span class="bp">self</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">bool</span>
<span class="w"> </span><span class="nc">where</span>
<span class="w"> </span><span class="bp">Self</span><span class="p">:</span><span class="w"> </span><span class="nb">PartialEq</span><span class="p">,</span>
<span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="bp">self</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="o">&amp;</span><span class="n">Zero</span><span class="p">::</span><span class="n">zero</span><span class="p">()</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>

<span class="k">impl</span><span class="w"> </span><span class="n">Zero</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kt">u32</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">zero</span><span class="p">()</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">u32</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="p">}</span>
<span class="p">}</span>

<span class="k">impl</span><span class="w"> </span><span class="n">Zero</span><span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="kt">f32</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">zero</span><span class="p">()</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nc">Self</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="mf">0.0</span><span class="w"> </span><span class="p">}</span>
<span class="p">}</span>
</pre></div>
<p>The example above also includes a method <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">is_zero</span></code> which provides a default implementation that is not required when implementing the trait.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023192–198_98-1" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023192–198-98"><span class="cite-bracket">[</span>93<span class="cite-bracket">]</span></a></sup>
</p><p>A function can then be made generic by adding type parameters inside angle brackets (<code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="o">&lt;</span><span class="n">Num</span><span class="o">&gt;</span></code>), which only allow types that implement the trait:
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="c1">// zero is a generic function with one type parameter, Num</span>
<span class="k">fn</span><span class="w"> </span><span class="nf">zero</span><span class="o">&lt;</span><span class="n">Num</span><span class="p">:</span><span class="w"> </span><span class="nc">Zero</span><span class="o">&gt;</span><span class="p">()</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="nc">Num</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="n">Num</span><span class="p">::</span><span class="n">zero</span><span class="p">()</span>
<span class="p">}</span>

<span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">a</span><span class="p">:</span><span class="w"> </span><span class="kt">u32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">zero</span><span class="p">();</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">b</span><span class="p">:</span><span class="w"> </span><span class="kt">f32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">zero</span><span class="p">();</span>
<span class="w"> </span><span class="fm">assert!</span><span class="p">(</span><span class="n">a</span><span class="p">.</span><span class="n">is_zero</span><span class="p">()</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="n">b</span><span class="p">.</span><span class="n">is_zero</span><span class="p">());</span>
<span class="p">}</span>
</pre></div>
<p>In the examples above, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">Num</span><span class="p">:</span><span class="w"> </span><span class="nc">Zero</span></code> as well as <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">where</span><span class="w"> </span><span class="bp">Self</span><span class="p">:</span><span class="w"> </span><span class="nb">PartialEq</span></code> are trait bounds that constrain the type to only allow types that implement <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">Zero</span></code> or <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="nb">PartialEq</span></code>.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023192–198_98-2" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023192–198-98"><span class="cite-bracket">[</span>93<span class="cite-bracket">]</span></a></sup> Within a trait or impl, <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="bp">Self</span></code> refers to the type that the code is implementing.<sup id="cite_ref-FOOTNOTEKlabnikNichols202398_99-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols202398-99"><span class="cite-bracket">[</span>94<span class="cite-bracket">]</span></a></sup>
</p><p>Generics can be used in functions to allow implementing a behavior for different types without repeating the same code. Generic functions can be written in relation to other generics, without knowing the actual type.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019171–172,_205_100-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019171–172,_205-100"><span class="cite-bracket">[</span>95<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Trait_objects">Trait objects</h4></div>
<p>Generic functions use <a href="Static_dispatch" title="Static dispatch">static dispatch</a>, meaning that the type of all parameters that end up being used for the function must be known at compile time. Generic functions generate separate copies of the code for each combination of generic parameters used in a process called <a href="Monomorphization" title="Monomorphization">monomorphization</a>.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023191–192_101-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023191–192-101"><span class="cite-bracket">[</span>96<span class="cite-bracket">]</span></a></sup> Because monomorphization duplicates the code for each type used, it is as performant as writing functions using concrete types,<sup id="cite_ref-FOOTNOTEKlabnikNichols2023191–192_101-1" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023191–192-101"><span class="cite-bracket">[</span>96<span class="cite-bracket">]</span></a></sup> but compile time and size of the output binary could be increased.<sup id="cite_ref-FOOTNOTEGjengset202125_102-0" class="reference"><a href="#cite_note-FOOTNOTEGjengset202125-102"><span class="cite-bracket">[</span>97<span class="cite-bracket">]</span></a></sup>
</p><p>however, Rust also uses a feature known as <i>trait objects</i> to accomplish <a href="Dynamic_dispatch" title="Dynamic dispatch">dynamic dispatch</a>, a type of polymorphism where the implementation of a polymorphic operation is chosen at <a href="Runtime_(program_lifecycle_phase)" class="mw-redirect" title="Runtime (program lifecycle phase)">runtime</a>. This allows for behavior similar to <a href="Duck_typing" title="Duck typing">duck typing</a>, where all data types that implement a given trait can be treated as functionally equivalent.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023[httpsdocrust-langorgbookch18-02-trait-objectshtml_18.2._Using_Trait_Objects_That_Allow_for_Values_of_Different_Types]_103-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023[httpsdocrust-langorgbookch18-02-trait-objectshtml_18.2._Using_Trait_Objects_That_Allow_for_Values_of_Different_Types]-103"><span class="cite-bracket">[</span>98<span class="cite-bracket">]</span></a></sup> Trait objects are declared using the syntax <code>dyn Tr</code> where <code>Tr</code> is a trait. Trait objects are dynamically sized, therefore they must be put behind a pointer, such as <code>Box</code>.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019441–442_104-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019441–442-104"><span class="cite-bracket">[</span>99<span class="cite-bracket">]</span></a></sup> The following example creates a list of objects where each object can be printed out using the <code>Display</code> trait:
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="k">use</span><span class="w"> </span><span class="n">std</span><span class="p">::</span><span class="n">fmt</span><span class="p">::</span><span class="n">Display</span><span class="p">;</span>

<span class="kd">let</span><span class="w"> </span><span class="n">v</span><span class="p">:</span><span class="w"> </span><span class="nb">Vec</span><span class="o">&lt;</span><span class="nb">Box</span><span class="o">&lt;</span><span class="k">dyn</span><span class="w"> </span><span class="n">Display</span><span class="o">&gt;&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="fm">vec!</span><span class="p">[</span>
<span class="w"> </span><span class="nb">Box</span><span class="p">::</span><span class="n">new</span><span class="p">(</span><span class="mi">3</span><span class="p">),</span>
<span class="w"> </span><span class="nb">Box</span><span class="p">::</span><span class="n">new</span><span class="p">(</span><span class="mf">5.0</span><span class="p">),</span>
<span class="w"> </span><span class="nb">Box</span><span class="p">::</span><span class="n">new</span><span class="p">(</span><span class="s">"hi"</span><span class="p">),</span>
<span class="p">];</span>

<span class="k">for</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{x}"</span><span class="p">);</span>
<span class="p">}</span>
</pre></div>
<p>If an element in the list does not implement the <code>Display</code> trait, it will cause a compile-time error.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019379–380_105-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019379–380-105"><span class="cite-bracket">[</span>100<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Memory_safety">Memory safety</h3></div>
<p>Rust is designed to be <a href="Memory_safe" class="mw-redirect" title="Memory safe">memory safe</a>. It does not permit null pointers, <a href="Dangling_pointer" title="Dangling pointer">dangling pointers</a>, or <a href="Data_race" class="mw-redirect" title="Data race">data races</a>.<sup id="cite_ref-cnet_106-0" class="reference"><a href="#cite_note-cnet-106"><span class="cite-bracket">[</span>101<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-lwn_107-0" class="reference"><a href="#cite_note-lwn-107"><span class="cite-bracket">[</span>102<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-The_Rustonomicon_108-0" class="reference"><a href="#cite_note-The_Rustonomicon-108"><span class="cite-bracket">[</span>103<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Sensors_109-0" class="reference"><a href="#cite_note-Sensors-109"><span class="cite-bracket">[</span>104<span class="cite-bracket">]</span></a></sup> Data values can be initialized only through a fixed set of forms, all of which require their inputs to be already initialized.<sup id="cite_ref-lang-faq_110-0" class="reference"><a href="#cite_note-lang-faq-110"><span class="cite-bracket">[</span>105<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Memory_management">Memory management</h3></div>
<p>Rust does not use <a href="Garbage_collection_(computer_science)" title="Garbage collection (computer science)">garbage collection</a>. Memory and other resources are instead managed through the "resource acquisition is initialization" convention,<sup id="cite_ref-111" class="reference"><a href="#cite_note-111"><span class="cite-bracket">[</span>106<span class="cite-bracket">]</span></a></sup> with optional <a href="Reference_counting" title="Reference counting">reference counting</a>. Rust provides deterministic management of resources, with very low <a href="Overhead_(computing)" title="Overhead (computing)">overhead</a>.<sup id="cite_ref-112" class="reference"><a href="#cite_note-112"><span class="cite-bracket">[</span>107<span class="cite-bracket">]</span></a></sup> Values are <a href="Stack-based_memory_allocation" title="Stack-based memory allocation">allocated on the stack</a> by default, and all <a href="Dynamic_allocation" class="mw-redirect" title="Dynamic allocation">dynamic allocations</a> must be explicit.<sup id="cite_ref-113" class="reference"><a href="#cite_note-113"><span class="cite-bracket">[</span>108<span class="cite-bracket">]</span></a></sup>
</p><p>The built-in reference types using the <code>&amp;</code> symbol do not involve run-time reference counting. The safety and validity of the underlying pointers is verified at compile time, preventing <a href="Dangling_pointers" class="mw-redirect" title="Dangling pointers">dangling pointers</a> and other forms of <a href="Undefined_behavior" title="Undefined behavior">undefined behavior</a>.<sup id="cite_ref-FOOTNOTEKlabnikNichols201970–75_114-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols201970–75-114"><span class="cite-bracket">[</span>109<span class="cite-bracket">]</span></a></sup> Rust's type system separates shared, <a href="Immutable_object" title="Immutable object">immutable</a> references of the form <code>&amp;T</code> from unique, mutable references of the form <code>&amp;mut T</code>. A mutable reference can be coerced to an immutable reference, but not vice versa.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019323_115-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019323-115"><span class="cite-bracket">[</span>110<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Unsafe">Unsafe</h3></div>
<p>Rust's memory safety checks may be circumvented through the use of <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">unsafe</span></code> blocks. This allows programmers to deference arbitrary raw pointers, call external code, or perform other low-level functionality not allowed by safe Rust.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023420–429_116-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023420–429-116"><span class="cite-bracket">[</span>111<span class="cite-bracket">]</span></a></sup> Some low-level functionality enabled in this way includes <a href="Volatile_(computer_programming)" title="Volatile (computer programming)">volatile memory access</a>, architecture-specific intrinsics, <a href="Type_punning" title="Type punning">type punning</a>, and inline assembly.<sup id="cite_ref-FOOTNOTEMcNamara2021139,_376–379,_395_117-0" class="reference"><a href="#cite_note-FOOTNOTEMcNamara2021139,_376–379,_395-117"><span class="cite-bracket">[</span>112<span class="cite-bracket">]</span></a></sup>
</p><p>Unsafe code is sometimes needed to implement complex data structures.<sup id="cite_ref-UnsafeRustUse_118-0" class="reference"><a href="#cite_note-UnsafeRustUse-118"><span class="cite-bracket">[</span>113<span class="cite-bracket">]</span></a></sup> A frequently cited example is that it is difficult or impossible to implement <a href="Doubly_linked_list" title="Doubly linked list">doubly linked lists</a> in safe Rust.<sup id="cite_ref-119" class="reference"><a href="#cite_note-119"><span class="cite-bracket">[</span>114<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-120" class="reference"><a href="#cite_note-120"><span class="cite-bracket">[</span>115<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-121" class="reference"><a href="#cite_note-121"><span class="cite-bracket">[</span>116<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-122" class="reference"><a href="#cite_note-122"><span class="cite-bracket">[</span>117<span class="cite-bracket">]</span></a></sup>
</p><p>Programmers using unsafe Rust are considered responsible for upholding Rust's memory and type safety requirements, for example, that no two mutable references exist pointing to the same location.<sup id="cite_ref-IsRustSafely_123-0" class="reference"><a href="#cite_note-IsRustSafely-123"><span class="cite-bracket">[</span>118<span class="cite-bracket">]</span></a></sup> If programmers write code which violates these requirements, this results in <a href="Undefined_behavior" title="Undefined behavior">undefined behavior</a>.<sup id="cite_ref-IsRustSafely_123-1" class="reference"><a href="#cite_note-IsRustSafely-123"><span class="cite-bracket">[</span>118<span class="cite-bracket">]</span></a></sup> The Rust documentation includes a list of behavior considered undefined, including accessing dangling or misaligned pointers, or breaking the aliasing rules for references.<sup id="cite_ref-124" class="reference"><a href="#cite_note-124"><span class="cite-bracket">[</span>119<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Macros">Macros</h3></div>
<p>Macros allow generation and transformation of Rust code to reduce repetition. Macros come in two forms, with <i>declarative macros</i> defined through <code>macro_rules!</code>, and <i>procedural macros</i>, which are defined in separate crates.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023449–455_125-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023449–455-125"><span class="cite-bracket">[</span>120<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEGjengset2021101–102_126-0" class="reference"><a href="#cite_note-FOOTNOTEGjengset2021101–102-126"><span class="cite-bracket">[</span>121<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading4"><h4 id="Declarative_macros">Declarative macros</h4></div>
<p>A declarative macro (also called a "macro by example") is a macro, defined using the <code>macro_rules!</code> keyword, that uses pattern matching to determine its expansion.<sup id="cite_ref-Rust_Ref._–_Macros_By_Example_127-0" class="reference"><a href="#cite_note-Rust_Ref._–_Macros_By_Example-127"><span class="cite-bracket">[</span>122<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEKlabnikNichols2019446–448_128-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019446–448-128"><span class="cite-bracket">[</span>123<span class="cite-bracket">]</span></a></sup> Below is an example that sums over all its arguments:
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="fm">macro_rules!</span><span class="w"> </span><span class="n">sum</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="p">(</span><span class="w"> </span><span class="cp">$initial</span><span class="p">:</span><span class="nc">expr</span><span class="w"> </span><span class="cp">$(,</span><span class="w"> </span><span class="cp">$expr</span><span class="p">:</span><span class="nc">expr</span><span class="w"> </span><span class="p">)</span><span class="o">*</span><span class="w"> </span><span class="cp">$(,</span><span class="p">)</span><span class="o">?</span><span class="w"> </span><span class="p">)</span><span class="w"> </span><span class="o">=&gt;</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="cp">$initial</span><span class="w"> </span><span class="cp">$(</span><span class="o">+</span><span class="w"> </span><span class="cp">$expr</span><span class="p">)</span><span class="o">*</span>
<span class="w"> </span><span class="p">}</span>
<span class="p">}</span>

<span class="k">fn</span><span class="w"> </span><span class="nf">main</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">sum</span><span class="o">!</span><span class="p">(</span><span class="mi">1</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">);</span>
<span class="w"> </span><span class="fm">println!</span><span class="p">(</span><span class="s">"{x}"</span><span class="p">);</span><span class="w"> </span><span class="c1">// prints 6</span>
<span class="p">}</span>
</pre></div>
<div class="mw-heading mw-heading4"><h4 id="Procedural_macros">Procedural macros</h4></div>
<p>Procedural macros are Rust functions that run and modify the compiler's input <a href="Token_(parser)" class="mw-redirect" title="Token (parser)">token</a> stream, before any other components are compiled. They are generally more flexible than declarative macros, but are more difficult to maintain due to their complexity.<sup id="cite_ref-rust-procedural-macros_129-0" class="reference"><a href="#cite_note-rust-procedural-macros-129"><span class="cite-bracket">[</span>124<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEKlabnikNichols2019449–455_130-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019449–455-130"><span class="cite-bracket">[</span>125<span class="cite-bracket">]</span></a></sup>
</p><p>Procedural macros come in three flavors:
</p>
<ul><li>Function-like macros <code>custom!(...)</code></li>
<li>Derive macros <code>#[derive(CustomDerive)]</code></li>
<li>Attribute macros <code>#[custom_attribute]</code></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Interface_with_C_and_C++">Interface with C and C++</h3></div>
<p>Rust supports the creation of <a href="Foreign_function_interface" title="Foreign function interface">foreign function interfaces</a> (FFI) through the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">extern</span></code> keyword. A function that uses the C <a href="Calling_convention" title="Calling convention">calling convention</a> can be written using <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">extern</span><span class="w"> </span><span class="s">"C"</span><span class="w"> </span><span class="k">fn</span></code>. Symbols can be exported from Rust to other languages through the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="cp">#[no_mangle]</span></code> attribute, and symbols can be imported into Rust through <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">extern</span></code> blocks:<sup id="cite_ref-132" class="reference"><a href="#cite_note-132"><span class="cite-bracket">[</span>note 6<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-FOOTNOTEGjengset2021193–209_133-0" class="reference"><a href="#cite_note-FOOTNOTEGjengset2021193–209-133"><span class="cite-bracket">[</span>127<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><pre><span class="cp">#[unsafe(no_mangle)]</span>
<span class="k">pub</span><span class="w"> </span><span class="k">extern</span><span class="w"> </span><span class="s">"C"</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">exported_from_rust</span><span class="p">(</span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="w"> </span><span class="p">}</span>
<span class="k">unsafe</span><span class="w"> </span><span class="k">extern</span><span class="w"> </span><span class="s">"C"</span><span class="w"> </span><span class="p">{</span>
<span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">imported_into_rust</span><span class="p">(</span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="p">;</span>
<span class="p">}</span>
</pre></div>
<p>The <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="cp">#[repr(C)]</span></code> attribute enables deterministic memory layouts for <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">struct</span></code>s and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">enum</span></code>s for use across FFI boundaries.<sup id="cite_ref-FOOTNOTEGjengset2021193–209_133-1" class="reference"><a href="#cite_note-FOOTNOTEGjengset2021193–209-133"><span class="cite-bracket">[</span>127<span class="cite-bracket">]</span></a></sup> External libraries such as <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">bindgen</span></code> and <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="n">cxx</span></code> can generate Rust bindings for C/C++.<sup id="cite_ref-FOOTNOTEGjengset2021193–209_133-2" class="reference"><a href="#cite_note-FOOTNOTEGjengset2021193–209-133"><span class="cite-bracket">[</span>127<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-134" class="reference"><a href="#cite_note-134"><span class="cite-bracket">[</span>128<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Ecosystem">Ecosystem</h2></div>

<p>The Rust ecosystem includes its compiler, its <a href="#Standard_library">standard library</a>, and additional components for software development. Component installation is typically managed by <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">rustup</code>, a Rust <a href="Toolchain" title="Toolchain">toolchain</a> installer developed by the Rust project.<sup id="cite_ref-FOOTNOTEBlandyOrendorffTindall20216–8_135-0" class="reference"><a href="#cite_note-FOOTNOTEBlandyOrendorffTindall20216–8-135"><span class="cite-bracket">[</span>129<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Compiler">Compiler</h3></div>
<p>The Rust compiler, <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">rustc</code>, translates Rust code into low-level LLVM <a href="Intermediate_representation" title="Intermediate representation">IR</a>. LLVM is then invoked as a subcomponent to apply <a href="Optimizing_compiler" title="Optimizing compiler">optimizations</a> and translate the resulting IR into <a href="Object_code" title="Object code">object code</a>. A <a href="Linker_(computing)" title="Linker (computing)">linker</a> is then used to combine the objects into a single executable image or binary file.<sup id="cite_ref-136" class="reference"><a href="#cite_note-136"><span class="cite-bracket">[</span>130<span class="cite-bracket">]</span></a></sup>
</p><p>Other than LLVM, the compiler also supports using alternative backends such as <a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GCC</a> and <a href="Cranelift" title="Cranelift">Cranelift</a> for code generation.<sup id="cite_ref-137" class="reference"><a href="#cite_note-137"><span class="cite-bracket">[</span>131<span class="cite-bracket">]</span></a></sup> The intention of those alternative backends is to increase platform coverage of Rust or to improve compilation times.<sup id="cite_ref-138" class="reference"><a href="#cite_note-138"><span class="cite-bracket">[</span>132<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-139" class="reference"><a href="#cite_note-139"><span class="cite-bracket">[</span>133<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Cargo">Cargo</h3></div>

<p>Cargo is Rust's <a href="Build_system_(software_development)" title="Build system (software development)">build system</a> and <a href="Package_manager" title="Package manager">package manager</a>. It downloads, compiles, distributes, and uploads packages—called <i>crates</i>—that are maintained in an official registry. It also acts as a front-end for Clippy and other Rust components.<sup id="cite_ref-Nature_140-0" class="reference"><a href="#cite_note-Nature-140"><span class="cite-bracket">[</span>134<span class="cite-bracket">]</span></a></sup>
</p><p>By default, Cargo sources its dependencies from the user-contributed registry <i>crates.io</i>, but <a href="Git" title="Git">Git</a> repositories, crates in the local filesystem, and other external sources can also be specified as dependencies.<sup id="cite_ref-141" class="reference"><a href="#cite_note-141"><span class="cite-bracket">[</span>135<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Rustfmt">Rustfmt</h3></div>
<p>Rustfmt is a <a href="Code_formatter" class="mw-redirect" title="Code formatter">code formatter</a> for Rust. It formats whitespace and <a href="Indentation_style" title="Indentation style">indentation</a> to produce code in accordance with a common <a href="Programming_style" title="Programming style">style</a>, unless otherwise specified. It can be invoked as a standalone program, or from a Rust project through Cargo.<sup id="cite_ref-FOOTNOTEKlabnikNichols2019511–512_142-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2019511–512-142"><span class="cite-bracket">[</span>136<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Clippy">Clippy</h3></div>

<p>Clippy is Rust's built-in <a href="Linting" class="mw-redirect" title="Linting">linting</a> tool to improve the correctness, performance, and readability of Rust code. As of 2024, it has more than 700 rules.<sup id="cite_ref-143" class="reference"><a href="#cite_note-143"><span class="cite-bracket">[</span>137<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-144" class="reference"><a href="#cite_note-144"><span class="cite-bracket">[</span>138<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Versioning_system">Versioning system</h3></div>
<p>Following Rust 1.0, new features are developed in <i>nightly</i> versions which are released daily. During each six-week release cycle, changes to nightly versions are released to beta, while changes from the previous beta version are released to a new stable version.<sup id="cite_ref-Rust_Book_G_145-0" class="reference"><a href="#cite_note-Rust_Book_G-145"><span class="cite-bracket">[</span>139<span class="cite-bracket">]</span></a></sup>
</p><p>Every two or three years, a new "edition" is produced. Editions are released to allow making limited <a href="Breaking_changes" class="mw-redirect" title="Breaking changes">breaking changes</a>, such as promoting <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">await</span></code> to a keyword to support <a href="Async/await" title="Async/await">async/await</a> features. Crates targeting different editions can interoperate with each other, so a crate can upgrade to a new edition even if its callers or its dependencies still target older editions. Migration to a new edition can be assisted with automated tooling.<sup id="cite_ref-FOOTNOTEBlandyOrendorffTindall2021176–177_146-0" class="reference"><a href="#cite_note-FOOTNOTEBlandyOrendorffTindall2021176–177-146"><span class="cite-bracket">[</span>140<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="IDE_support">IDE support</h3></div>
<p><i>rust-analyzer</i> is a set of <a href="Utility_software" title="Utility software">utilities</a> that provides <a href="Integrated_development_environment" title="Integrated development environment">integrated development environments</a> (IDEs) and <a href="Text_editor" title="Text editor">text editors</a> with information about a Rust project through the <a href="Language_Server_Protocol" title="Language Server Protocol">Language Server Protocol</a>. This enables features including <a href="Autocomplete" title="Autocomplete">autocomplete</a>, and <a href="Compilation_error" title="Compilation error">compilation error</a> display, while editing code.<sup id="cite_ref-FOOTNOTEKlabnikNichols2023623_147-0" class="reference"><a href="#cite_note-FOOTNOTEKlabnikNichols2023623-147"><span class="cite-bracket">[</span>141<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Performance">Performance</h2></div>
<p>Since it performs no garbage collection, Rust is often faster than other memory-safe languages.<sup id="cite_ref-148" class="reference"><a href="#cite_note-148"><span class="cite-bracket">[</span>142<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-BeyondSafety_75-1" class="reference"><a href="#cite_note-BeyondSafety-75"><span class="cite-bracket">[</span>70<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-149" class="reference"><a href="#cite_note-149"><span class="cite-bracket">[</span>143<span class="cite-bracket">]</span></a></sup> Most of Rust's memory safety guarantees impose no runtime overhead,<sup id="cite_ref-FOOTNOTEMcNamara202111_150-0" class="reference"><a href="#cite_note-FOOTNOTEMcNamara202111-150"><span class="cite-bracket">[</span>144<span class="cite-bracket">]</span></a></sup> with the exception of <a href="Array_(data_structure)" title="Array (data structure)">array indexing</a> which is checked at runtime by default.<sup id="cite_ref-SaferAtAnySpeed_151-0" class="reference"><a href="#cite_note-SaferAtAnySpeed-151"><span class="cite-bracket">[</span>145<span class="cite-bracket">]</span></a></sup> The performance impact of array indexing bounds checks varies, but can be significant in some cases.<sup id="cite_ref-SaferAtAnySpeed_151-1" class="reference"><a href="#cite_note-SaferAtAnySpeed-151"><span class="cite-bracket">[</span>145<span class="cite-bracket">]</span></a></sup>
</p><p>Many of Rust's features are so-called <i>zero-cost abstractions</i>, meaning they are optimized away at compile time and incur no runtime penalty.<sup id="cite_ref-FOOTNOTEMcNamara202119,_27_152-0" class="reference"><a href="#cite_note-FOOTNOTEMcNamara202119,_27-152"><span class="cite-bracket">[</span>146<span class="cite-bracket">]</span></a></sup> The ownership and borrowing system permits <a href="Zero-copy" title="Zero-copy">zero-copy</a> implementations for some performance-sensitive tasks, such as <a href="Parsing" title="Parsing">parsing</a>.<sup id="cite_ref-153" class="reference"><a href="#cite_note-153"><span class="cite-bracket">[</span>147<span class="cite-bracket">]</span></a></sup> <a href="Static_dispatch" title="Static dispatch">Static dispatch</a> is used by default to eliminate <a href="Method_call" class="mw-redirect" title="Method call">method calls</a>, except for methods called on dynamic trait objects.<sup id="cite_ref-FOOTNOTEMcNamara202120_154-0" class="reference"><a href="#cite_note-FOOTNOTEMcNamara202120-154"><span class="cite-bracket">[</span>148<span class="cite-bracket">]</span></a></sup> The compiler also uses <a href="Inline_expansion" title="Inline expansion">inline expansion</a> to eliminate <a href="Function_call" class="mw-redirect" title="Function call">function calls</a> and statically-dispatched method invocations.<sup id="cite_ref-155" class="reference"><a href="#cite_note-155"><span class="cite-bracket">[</span>149<span class="cite-bracket">]</span></a></sup>
</p><p>Since Rust uses <a href="LLVM" title="LLVM">LLVM</a>, all performance improvements in LLVM apply to Rust also.<sup id="cite_ref-how-fast-is-rust_156-0" class="reference"><a href="#cite_note-how-fast-is-rust-156"><span class="cite-bracket">[</span>150<span class="cite-bracket">]</span></a></sup> Unlike C and C++, Rust allows for reordering struct and enum elements<sup id="cite_ref-157" class="reference"><a href="#cite_note-157"><span class="cite-bracket">[</span>151<span class="cite-bracket">]</span></a></sup> to reduce the sizes of structures in memory, for better memory alignment and efficiency.<sup id="cite_ref-FOOTNOTEGjengset202122_158-0" class="reference"><a href="#cite_note-FOOTNOTEGjengset202122-158"><span class="cite-bracket">[</span>152<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="Adoption">Adoption</h2></div>


<p>Rust is used in software across different domains. Components from the Servo browser engine (funded by <a href="Mozilla" title="Mozilla">Mozilla</a> and <a href="Samsung" title="Samsung">Samsung</a>) were incorporated in the <a href="Gecko_(software)" title="Gecko (software)">Gecko</a> browser engine underlying <a href="Firefox" title="Firefox">Firefox</a>.<sup id="cite_ref-159" class="reference"><a href="#cite_note-159"><span class="cite-bracket">[</span>153<span class="cite-bracket">]</span></a></sup> In January 2023, Google (<a href="Alphabet_Inc." title="Alphabet Inc.">Alphabet</a>) announced support for using third party Rust libraries in <a href="Chromium_(web_browser)" title="Chromium (web browser)">Chromium</a>.<sup id="cite_ref-160" class="reference"><a href="#cite_note-160"><span class="cite-bracket">[</span>154<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-161" class="reference"><a href="#cite_note-161"><span class="cite-bracket">[</span>155<span class="cite-bracket">]</span></a></sup>
</p><p>Rust is used in several <a href="Frontend_and_backend" title="Frontend and backend">backend</a> software projects of large <a href="Web_service" title="Web service">web services</a>. <a href="OpenDNS" title="OpenDNS">OpenDNS</a>, a <a href="Domain_Name_System" title="Domain Name System">DNS</a> resolution service owned by <a href="Cisco" title="Cisco">Cisco</a>, uses Rust internally.<sup id="cite_ref-162" class="reference"><a href="#cite_note-162"><span class="cite-bracket">[</span>156<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-163" class="reference"><a href="#cite_note-163"><span class="cite-bracket">[</span>157<span class="cite-bracket">]</span></a></sup> <a href="Amazon_Web_Services" title="Amazon Web Services">Amazon Web Services</a> uses Rust in "performance-sensitive components" of its several services. In 2019, AWS <a href="Open_sourced" class="mw-redirect" title="Open sourced">open-sourced</a> <a href="Firecracker_(software)" title="Firecracker (software)">Firecracker</a>, a virtualization solution primarily written in Rust.<sup id="cite_ref-164" class="reference"><a href="#cite_note-164"><span class="cite-bracket">[</span>158<span class="cite-bracket">]</span></a></sup> <a href="Microsoft_Azure" title="Microsoft Azure">Microsoft Azure</a> IoT Edge, a platform used to run Azure services on <a href="Internet_of_things" title="Internet of things">IoT</a> devices, has components implemented in Rust.<sup id="cite_ref-165" class="reference"><a href="#cite_note-165"><span class="cite-bracket">[</span>159<span class="cite-bracket">]</span></a></sup> Microsoft also uses Rust to run containerized modules with <a href="WebAssembly" title="WebAssembly">WebAssembly</a> and <a href="Kubernetes" title="Kubernetes">Kubernetes</a>.<sup id="cite_ref-166" class="reference"><a href="#cite_note-166"><span class="cite-bracket">[</span>160<span class="cite-bracket">]</span></a></sup> <a href="Cloudflare" title="Cloudflare">Cloudflare</a>, a company providing <a href="Content_delivery_network" title="Content delivery network">content delivery network</a> services, used Rust to build a new <a href="Web_proxy" class="mw-redirect" title="Web proxy">web proxy</a> named Pingora for increased performance and efficiency.<sup id="cite_ref-167" class="reference"><a href="#cite_note-167"><span class="cite-bracket">[</span>161<span class="cite-bracket">]</span></a></sup> The <a href="Npm" title="Npm">npm package manager</a> used Rust for its production authentication service in 2019.<sup id="cite_ref-168" class="reference"><a href="#cite_note-168"><span class="cite-bracket">[</span>162<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-169" class="reference"><a href="#cite_note-169"><span class="cite-bracket">[</span>163<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-170" class="reference"><a href="#cite_note-170"><span class="cite-bracket">[</span>164<span class="cite-bracket">]</span></a></sup>
</p>

<p>In operating systems, the <a href="Rust_for_Linux" title="Rust for Linux">Rust for Linux</a> project, launched in 2020, merged initial support into the <a href="Linux_kernel" title="Linux kernel">Linux kernel</a> version 6.1 in late 2022.<sup id="cite_ref-UsenixRustForLinux_171-0" class="reference"><a href="#cite_note-UsenixRustForLinux-171"><span class="cite-bracket">[</span>165<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-172" class="reference"><a href="#cite_note-172"><span class="cite-bracket">[</span>166<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-173" class="reference"><a href="#cite_note-173"><span class="cite-bracket">[</span>167<span class="cite-bracket">]</span></a></sup> The project is active with a team of 6–7 developers, and has added more Rust code with kernel releases from 2022 to 2024,<sup id="cite_ref-174" class="reference"><a href="#cite_note-174"><span class="cite-bracket">[</span>168<span class="cite-bracket">]</span></a></sup> aiming to demonstrate the <a href="Minimum_viable_product" title="Minimum viable product">minimum viability</a> of the project and resolve key compatibility blockers.<sup id="cite_ref-UsenixRustForLinux_171-1" class="reference"><a href="#cite_note-UsenixRustForLinux-171"><span class="cite-bracket">[</span>165<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-175" class="reference"><a href="#cite_note-175"><span class="cite-bracket">[</span>169<span class="cite-bracket">]</span></a></sup> The first drivers written in Rust were merged into the kernel for version 6.8.<sup id="cite_ref-UsenixRustForLinux_171-2" class="reference"><a href="#cite_note-UsenixRustForLinux-171"><span class="cite-bracket">[</span>165<span class="cite-bracket">]</span></a></sup> The <a href="Android_(operating_system)" title="Android (operating system)">Android</a> developers used Rust in 2021 to rewrite existing components.<sup id="cite_ref-176" class="reference"><a href="#cite_note-176"><span class="cite-bracket">[</span>170<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-177" class="reference"><a href="#cite_note-177"><span class="cite-bracket">[</span>171<span class="cite-bracket">]</span></a></sup> <a href="Microsoft" title="Microsoft">Microsoft</a> has rewritten parts of <a href="Windows" class="mw-redirect" title="Windows">Windows</a> in Rust.<sup id="cite_ref-178" class="reference"><a href="#cite_note-178"><span class="cite-bracket">[</span>172<span class="cite-bracket">]</span></a></sup> The r9 project aims to re-implement <a href="Plan_9_from_Bell_Labs" title="Plan 9 from Bell Labs">Plan 9 from Bell Labs</a> in Rust.<sup id="cite_ref-179" class="reference"><a href="#cite_note-179"><span class="cite-bracket">[</span>173<span class="cite-bracket">]</span></a></sup> Rust has been used in the development of new operating systems such as <a href="Redox_(operating_system)" class="mw-redirect" title="Redox (operating system)">Redox</a>, a "Unix-like" operating system and <a href="Microkernel" title="Microkernel">microkernel</a>,<sup id="cite_ref-180" class="reference"><a href="#cite_note-180"><span class="cite-bracket">[</span>174<span class="cite-bracket">]</span></a></sup> Theseus, an experimental operating system with modular state management,<sup id="cite_ref-181" class="reference"><a href="#cite_note-181"><span class="cite-bracket">[</span>175<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-182" class="reference"><a href="#cite_note-182"><span class="cite-bracket">[</span>176<span class="cite-bracket">]</span></a></sup> and most of <a href="Fuchsia_(operating_system)" title="Fuchsia (operating system)">Fuchsia</a>.<sup id="cite_ref-rustmag-1_183-0" class="reference"><a href="#cite_note-rustmag-1-183"><span class="cite-bracket">[</span>177<span class="cite-bracket">]</span></a></sup> Rust is also used for command-line tools and operating system components, including <a href="Stratis_(configuration_daemon)" title="Stratis (configuration daemon)">stratisd</a>, a <a href="File_system" title="File system">file system</a> manager<sup id="cite_ref-184" class="reference"><a href="#cite_note-184"><span class="cite-bracket">[</span>178<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-185" class="reference"><a href="#cite_note-185"><span class="cite-bracket">[</span>179<span class="cite-bracket">]</span></a></sup> and COSMIC, a <a href="Desktop_environment" title="Desktop environment">desktop environment</a> by <a href="System76" title="System76">System76</a>.<sup id="cite_ref-186" class="reference"><a href="#cite_note-186"><span class="cite-bracket">[</span>180<span class="cite-bracket">]</span></a></sup>
</p><p>In web development, <a href="Deno_(software)" title="Deno (software)">Deno</a>, a secure runtime for <a href="JavaScript" title="JavaScript">JavaScript</a> and <a href="TypeScript" title="TypeScript">TypeScript</a>, is built on top of <a href="V8_(JavaScript_engine)" title="V8 (JavaScript engine)">V8</a> using Rust and Tokio.<sup id="cite_ref-187" class="reference"><a href="#cite_note-187"><span class="cite-bracket">[</span>181<span class="cite-bracket">]</span></a></sup> Other notable adoptions in this space include <a href="Ruffle_(software)" title="Ruffle (software)">Ruffle</a>, an open-source <a href="SWF" title="SWF">SWF</a> emulator,<sup id="cite_ref-188" class="reference"><a href="#cite_note-188"><span class="cite-bracket">[</span>182<span class="cite-bracket">]</span></a></sup> and <a href="Polkadot_(cryptocurrency)" class="mw-redirect" title="Polkadot (cryptocurrency)">Polkadot</a>, an open source <a href="Blockchain" title="Blockchain">blockchain</a> and <a href="Cryptocurrency" title="Cryptocurrency">cryptocurrency</a> platform.<sup id="cite_ref-189" class="reference"><a href="#cite_note-189"><span class="cite-bracket">[</span>183<span class="cite-bracket">]</span></a></sup>
</p><p><a href="Discord" title="Discord">Discord</a>, an <a href="Instant_messaging" title="Instant messaging">instant messaging</a> software company, rewrote parts of its system in Rust for increased performance in 2020. In the same year, Dropbox announced that its <a href="File_synchronization" title="File synchronization">file synchronization</a> had been rewritten in Rust. <a href="Facebook" title="Facebook">Facebook</a> (<a href="Meta_Platforms" title="Meta Platforms">Meta</a>) used Rust to redesign its system that manages source code for internal projects.<sup id="cite_ref-MITTechReview_16-18" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p><p>In the 2025 <a href="Stack_Overflow" title="Stack Overflow">Stack Overflow</a> Developer Survey, 14.8% of respondents had recently done extensive development in Rust.<sup id="cite_ref-SO-2025-survey_190-0" class="reference"><a href="#cite_note-SO-2025-survey-190"><span class="cite-bracket">[</span>184<span class="cite-bracket">]</span></a></sup> The survey named Rust the "most admired programming language" annually from 2016 to 2025 (inclusive), as measured by the number of existing developers interested in continuing to work in the language.<sup id="cite_ref-191" class="reference"><a href="#cite_note-191"><span class="cite-bracket">[</span>185<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-192" class="reference"><a href="#cite_note-192"><span class="cite-bracket">[</span>note 7<span class="cite-bracket">]</span></a></sup> In 2025, 29.2% of developers not currently working in Rust expressed an interest in doing so.<sup id="cite_ref-SO-2025-survey_190-2" class="reference"><a href="#cite_note-SO-2025-survey-190"><span class="cite-bracket">[</span>184<span class="cite-bracket">]</span></a></sup>
</p><p><a href="DARPA" title="DARPA">DARPA</a> has a project TRACTOR (Translating All C to Rust) automatically translating C to Rust using techniques such as static analysis, dynamic analysis, and large language models.<sup id="cite_ref-193" class="reference"><a href="#cite_note-193"><span class="cite-bracket">[</span>186<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="In_academic_research">In academic research</h2></div>
<p>Rust's safety and performance have been investigated in <a href="Programming_language_theory" title="Programming language theory">programming language theory</a> research.<sup id="cite_ref-194" class="reference"><a href="#cite_note-194"><span class="cite-bracket">[</span>187<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-UnsafeRustUse_118-1" class="reference"><a href="#cite_note-UnsafeRustUse-118"><span class="cite-bracket">[</span>113<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-195" class="reference"><a href="#cite_note-195"><span class="cite-bracket">[</span>188<span class="cite-bracket">]</span></a></sup>
</p><p>Rust's applicability to writing research software has been examined in other fields. A journal article published to <i><a href="Proceedings_of_the_International_Astronomical_Union" class="mw-redirect" title="Proceedings of the International Astronomical Union">Proceedings of the International Astronomical Union</a></i> used Rust to simulate multi-planet systems.<sup id="cite_ref-ResearchSoftware1_196-0" class="reference"><a href="#cite_note-ResearchSoftware1-196"><span class="cite-bracket">[</span>189<span class="cite-bracket">]</span></a></sup> An article published in <i><a href="Nature_(journal)" title="Nature (journal)">Nature</a></i> shared stories of bioinformaticians using Rust.<sup id="cite_ref-Nature_140-1" class="reference"><a href="#cite_note-Nature-140"><span class="cite-bracket">[</span>134<span class="cite-bracket">]</span></a></sup> Both articles found that Rust has advantages for its performance and safety, and cited the <a href="Learning_curve" title="Learning curve">learning curve</a> as being a primary drawback to its adoption.
</p>
<div class="mw-heading mw-heading2"><h2 id="Community">Community</h2></div>

<p>According to the <i><a href="MIT_Technology_Review" title="MIT Technology Review">MIT Technology Review</a></i>, the Rust community has been seen as "unusually friendly" to newcomers and particularly attracted people from the <a href="Queer_community" class="mw-redirect" title="Queer community">queer community</a>, partly due to its <a href="Code_of_conduct" title="Code of conduct">code of conduct</a> which outlined a set of expectations for Rust community members to follow.<sup id="cite_ref-MITTechReview_16-19" class="reference"><a href="#cite_note-MITTechReview-16"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup> Inclusiveness of the community has been cited as an important factor for some Rust developers.<sup id="cite_ref-Nature_140-2" class="reference"><a href="#cite_note-Nature-140"><span class="cite-bracket">[</span>134<span class="cite-bracket">]</span></a></sup> Demographic data on the community has been collected and published by the Rust official blog.<sup id="cite_ref-StateOfRustSurvey2024_199-0" class="reference"><a href="#cite_note-StateOfRustSurvey2024-199"><span class="cite-bracket">[</span>192<span class="cite-bracket">]</span></a></sup>
</p><p>According to <a href="GitHub" title="GitHub">GitHub</a>'s <i>State of the Octoverse</i> project, the Rust community grew by 50.5% in 2022, making it one of the fastest growing communities,<sup id="cite_ref-200" class="reference"><a href="#cite_note-200"><span class="cite-bracket">[</span>193<span class="cite-bracket">]</span></a></sup> though not one of the 10 largest communities as of 2024.<sup id="cite_ref-201" class="reference"><a href="#cite_note-201"><span class="cite-bracket">[</span>194<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Rust_Foundation">Rust Foundation</h3></div>
<table class="infobox vcard"><caption class="infobox-title fn org">Rust Foundation</caption><tbody><tr><td colspan="2" class="infobox-image logo"></td></tr><tr><th scope="row" class="infobox-label" style="padding-right:0.6em;">Formation</th><td class="infobox-data note">February&nbsp;8, 2021<span style="display:none">&nbsp;(<span class="bday dtstart published updated">2021-02-08</span>)</span></td></tr><tr><th scope="row" class="infobox-label" style="padding-right:0.6em;">Founders</th><td class="infobox-data"><style data-mw-deduplicate="TemplateStyles:r1126788409">
/* start https://en.wikipedia.org/ */


.mw-parser-output .plainlist ol,.mw-parser-output .plainlist ul{line-height:inherit;list-style:none;margin:0;padding:0}.mw-parser-output .plainlist ol li,.mw-parser-output .plainlist ul li{margin-bottom:0}


/* end https://en.wikipedia.org/ */
</style><div class="plainlist"><ul><li><a href="Amazon_Web_Services" title="Amazon Web Services">Amazon Web Services</a></li><li><a href="Google" title="Google">Google</a></li><li><a href="Huawei" title="Huawei">Huawei</a></li><li><a href="Microsoft" title="Microsoft">Microsoft</a></li><li><a href="Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a></li></ul></div></td></tr><tr><th scope="row" class="infobox-label" style="padding-right:0.6em;">Type</th><td class="infobox-data"><a href="Nonprofit_organization" title="Nonprofit organization">Nonprofit organization</a></td></tr><tr><th scope="row" class="infobox-label" style="padding-right:0.6em;">Location</th><td class="infobox-data label"><div class="plainlist"><ul><li><span class="country-name"><a href="United_States" title="United States">United States</a></span></li></ul></div></td></tr><tr><th scope="row" class="infobox-label" style="padding-right:0.6em;"><div style="display: inline-block; line-height: 1.2em; padding: .1em 0;"><a href="Chairperson" class="mw-redirect" title="Chairperson">Chairperson</a></div></th><td class="infobox-data">Shane Miller</td></tr><tr><th scope="row" class="infobox-label" style="padding-right:0.6em;"><div style="display: inline-block; line-height: 1.2em; padding: .1em 0;"><a href="Executive_Director" class="mw-redirect" title="Executive Director">Executive Director</a></div></th><td class="infobox-data">Rebecca Rumbul</td></tr><tr><th scope="row" class="infobox-label" style="padding-right:0.6em;">Website</th><td class="infobox-data"><span class="url"><a rel="nofollow" class="external text" href="http://foundation.rust-lang.org">foundation<wbr>.rust-lang<wbr>.org</a></span></td></tr></tbody></table>
<p>The <b>Rust Foundation</b> is a <a href="Nonprofit_organization" title="Nonprofit organization">non-profit</a> <a href="Membership_organization" title="Membership organization">membership organization</a> incorporated in <a href="United_States" title="United States">United States</a>, with the primary purposes of backing the technical project as a <a href="Legal_entity" class="mw-redirect" title="Legal entity">legal entity</a> and helping to manage the trademark and infrastructure assets.<sup id="cite_ref-202" class="reference"><a href="#cite_note-202"><span class="cite-bracket">[</span>195<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-:4_49-1" class="reference"><a href="#cite_note-:4-49"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup>
</p><p>It was established on February 8, 2021, with five founding corporate members (Amazon Web Services, Huawei, Google, Microsoft, and Mozilla).<sup id="cite_ref-203" class="reference"><a href="#cite_note-203"><span class="cite-bracket">[</span>196<span class="cite-bracket">]</span></a></sup> The foundation's board is chaired by Shane Miller.<sup id="cite_ref-204" class="reference"><a href="#cite_note-204"><span class="cite-bracket">[</span>197<span class="cite-bracket">]</span></a></sup> Starting in late 2021, its Executive Director and CEO is Rebecca Rumbul.<sup id="cite_ref-205" class="reference"><a href="#cite_note-205"><span class="cite-bracket">[</span>198<span class="cite-bracket">]</span></a></sup> Prior to this, Ashley Williams was interim executive director.<sup id="cite_ref-:4_49-2" class="reference"><a href="#cite_note-:4-49"><span class="cite-bracket">[</span>44<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Governance_teams">Governance teams</h3></div>
<p>The Rust project is composed of <i>teams</i> that are responsible for different subareas of the development. The compiler team develops, manages, and optimizes compiler internals; and the language team designs new language features and helps implement them. The Rust project website lists 6 top-level teams as of July 2024.<sup id="cite_ref-206" class="reference"><a href="#cite_note-206"><span class="cite-bracket">[</span>199<span class="cite-bracket">]</span></a></sup> Representatives among teams form the Leadership council, which oversees the Rust project as a whole.<sup id="cite_ref-207" class="reference"><a href="#cite_note-207"><span class="cite-bracket">[</span>200<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Comparison_of_programming_languages" title="Comparison of programming languages">Comparison of programming languages</a></li>
<li><a href="History_of_programming_languages" title="History of programming languages">History of programming languages</a></li>
<li><a href="List_of_programming_languages" title="List of programming languages">List of programming languages</a></li>
<li><a href="List_of_programming_languages_by_type" title="List of programming languages by type">List of programming languages by type</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text">Including build tools, host tools, and standard library support for <a href="X86-64" title="X86-64">x86-64</a>, <a href="ARM_architecture_family" title="ARM architecture family">ARM</a>, <a href="MIPS_architecture" title="MIPS architecture">MIPS</a>, <a href="RISC-V" title="RISC-V">RISC-V</a>, <a href="WebAssembly" title="WebAssembly">WebAssembly</a>, <a href="P6_(microarchitecture)" title="P6 (microarchitecture)">i686</a>, <a href="AArch64" title="AArch64">AArch64</a>, <a href="PowerPC" title="PowerPC">PowerPC</a>, and <a href="Linux_on_IBM_Z" title="Linux on IBM Z">s390x</a>.<sup id="cite_ref-CrossPlatform_2-0" class="reference"><a href="#cite_note-CrossPlatform-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text">Including <a href="Windows" class="mw-redirect" title="Windows">Windows</a>, <a href="Linux" title="Linux">Linux</a>, <a href="MacOS" title="MacOS">macOS</a>, <a href="FreeBSD" title="FreeBSD">FreeBSD</a>, <a href="NetBSD" title="NetBSD">NetBSD</a>, and <a href="Illumos" title="Illumos">Illumos</a>. Host build tools on <a href="Android_(operating_system)" title="Android (operating system)">Android</a>, <a href="IOS" title="IOS">iOS</a>, <a href="Haiku_(operating_system)" title="Haiku (operating system)">Haiku</a>, <a href="Redox_(operating_system)" class="mw-redirect" title="Redox (operating system)">Redox</a>, and <a href="Fuchsia_(operating_system)" title="Fuchsia (operating system)">Fuchsia</a> are not officially shipped; these operating systems are supported as targets.<sup id="cite_ref-CrossPlatform_2-1" class="reference"><a href="#cite_note-CrossPlatform-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup></span>
</li>
<li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text">Third-party dependencies, e.g., <a href="LLVM" title="LLVM">LLVM</a> or <a href="MSVC" class="mw-redirect" title="MSVC">MSVC</a>, are subject to their own licenses.<sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-licenses_6-0" class="reference"><a href="#cite_note-licenses-6"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup></span>
</li>
<li id="cite_note-22"><span class="mw-cite-backlink"><b><a href="#cite_ref-22">^</a></b></span> <span class="reference-text">The list of Rust compiler versions (referred to as a bootstrapping chain) has history going back to 2012.<sup id="cite_ref-Nelson2022RustConf_21-0" class="reference"><a href="#cite_note-Nelson2022RustConf-21"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup></span>
</li>
<li id="cite_note-32"><span class="mw-cite-backlink"><b><a href="#cite_ref-32">^</a></b></span> <span class="reference-text">Energy compared to C was 3% more for Rust and 34% more for C++; time was 4% more and 56% more, respectively.</span>
</li>
<li id="cite_note-132"><span class="mw-cite-backlink"><b><a href="#cite_ref-132">^</a></b></span> <span class="reference-text">wrapping <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">no_mangle</code> with <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">unsafe</span></code> as well as prefacing the <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">extern</span><span class="w"> </span><span class="s">"C"</span></code> block with <code class="mw-highlight mw-highlight-lang-rust mw-content-ltr" dir="ltr"><span class="k">unsafe</span></code> are required in the 2024 edition or later.<sup id="cite_ref-131" class="reference"><a href="#cite_note-131"><span class="cite-bracket">[</span>126<span class="cite-bracket">]</span></a></sup></span>
</li>
<li id="cite_note-192"><span class="mw-cite-backlink"><b><a href="#cite_ref-192">^</a></b></span> <span class="reference-text">That is, among respondents who have done "extensive development work [with Rust] in over the past year" (14.8%), Rust had the largest percentage who also expressed interest to "work in [Rust] over the next year" (72.4%).<sup id="cite_ref-SO-2025-survey_190-1" class="reference"><a href="#cite_note-SO-2025-survey-190"><span class="cite-bracket">[</span>184<span class="cite-bracket">]</span></a></sup></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<div class="mw-heading mw-heading3"><h3 id="Book_sources">Book sources</h3></div>
<style data-mw-deduplicate="TemplateStyles:r1239549316">
/* start https://en.wikipedia.org/ */


.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}


/* end https://en.wikipedia.org/ */
</style><div class="refbegin" style="">
<ul><li><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFGjengset2021" class="citation book cs1">Gjengset, Jon (2021). <i>Rust for Rustaceans</i> (1st&nbsp;ed.). No Starch Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9781718501850</bdi>. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/1277511986">1277511986</a>.</cite></li>
<li><cite id="CITEREFKlabnikNichols2019" class="citation book cs1">Klabnik, Steve; Nichols, Carol (2019-08-12). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=0Vv6DwAAQBAJ"><i>The Rust Programming Language (Covers Rust 2018)</i></a>. No Starch Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-7185-0044-0</bdi>.</cite></li>
<li><cite id="CITEREFBlandyOrendorffTindall2021" class="citation book cs1">Blandy, Jim; Orendorff, Jason; Tindall, Leonora F. S. (2021). <i>Programming Rust: Fast, Safe Systems Development</i> (2nd&nbsp;ed.). O'Reilly Media. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4920-5254-8</bdi>. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/1289839504">1289839504</a>.</cite></li>
<li><cite id="CITEREFMcNamara2021" class="citation book cs1">McNamara, Tim (2021). <i>Rust in Action</i>. Manning Publications. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-6172-9455-6</bdi>. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/1153044639">1153044639</a>.</cite></li>
<li><cite id="CITEREFKlabnikNichols2023" class="citation book cs1">Klabnik, Steve; Nichols, Carol (2023). <i>The Rust programming language</i> (2nd&nbsp;ed.). No Starch Press. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-7185-0310-6</bdi>. <a href="OCLC_(identifier)" class="mw-redirect" title="OCLC (identifier)">OCLC</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/oclc/1363816350">1363816350</a>.</cite></li></ul>
</div>
<div class="mw-heading mw-heading3"><h3 id="Others">Others</h3></div>
<div class="reflist">
<div class="mw-references-wrap mw-references-columns"><ol class="references">
<li id="cite_note-wikidata-42eccb0a605b229c6b6eea550d8b48ffbb9477d8-v20-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-wikidata-42eccb0a605b229c6b6eea550d8b48ffbb9477d8-v20_1-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.rust-lang.org/2025/08/07/Rust-1.89.0/">"Announcing Rust 1.89.0"</a>. 2025-08-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-08-07</span></span>.</cite></span>
</li>
<li id="cite_note-CrossPlatform-2"><span class="mw-cite-backlink">^ <a href="#cite_ref-CrossPlatform_2-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-CrossPlatform_2-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/rustc/platform-support.html">"Platform Support"</a>. <i>The rustc book</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220630164523/https://doc.rust-lang.org/rustc/platform-support.html">Archived</a> from the original on 2022-06-30<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-06-27</span></span>.</cite></span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/rust-lang/rust/blob/master/COPYRIGHT">"Copyright"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>. The Rust Programming Language. 2022-10-19. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230722190056/http://github.com/rust-lang/rust/blob/master/COPYRIGHT">Archived</a> from the original on 2023-07-22<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-10-19</span></span>.</cite></span>
</li>
<li id="cite_note-licenses-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-licenses_6-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.rust-lang.org/policies/licenses">"Licenses"</a>. <i>The Rust Programming Language</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20250223193908/https://www.rust-lang.org/policies/licenses">Archived</a> from the original on 2025-02-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-03-07</span></span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.rust-lang.org/2016/08/10/Shape-of-errors-to-come.html">"Uniqueness Types"</a>. <i>Rust Blog</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160915133745/https://blog.rust-lang.org/2016/08/10/Shape-of-errors-to-come.html">Archived</a> from the original on 2016-09-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-10-08</span></span>. <q>Those of you familiar with the Elm style may recognize that the updated <style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */


.mw-parser-output .monospaced{font-family:monospace,monospace}


/* end https://en.wikipedia.org/ */
</style><span class="monospaced">--explain</span> messages draw heavy inspiration from the Elm approach.</q></cite></span>
</li>
<li id="cite_note-influences-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-influences_9-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/reference/influences.html">"Influences"</a>. <i>The Rust Reference</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20231126231034/https://doc.rust-lang.org/reference/influences.html">Archived</a> from the original on 2023-11-26<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-12-31</span></span>.</cite></span>
</li>
<li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://docs.idris-lang.org/en/latest/reference/uniqueness-types.html">"Uniqueness Types"</a>. <i>Idris 1.3.3 documentation</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20181121072557/http://docs.idris-lang.org/en/latest/reference/uniqueness-types.html">Archived</a> from the original on 2018-11-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-14</span></span>. <q>They are inspired by ... ownership types and borrowed pointers in the Rust programming language.</q></cite></span>
</li>
<li id="cite_note-Project_Verona-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-Project_Verona_11-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFTung" class="citation web cs1">Tung, Liam. <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/microsoft-opens-up-rust-inspired-project-verona-programming-language-on-github/">"Microsoft opens up Rust-inspired Project Verona programming language on GitHub"</a>. <i><a href="ZDNET" title="ZDNET">ZDNET</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200117143852/https://www.zdnet.com/article/microsoft-opens-up-rust-inspired-project-verona-programming-language-on-github/">Archived</a> from the original on 2020-01-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-01-17</span></span>.</cite></span>
</li>
<li id="cite_note-Jaloyan-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-Jaloyan_12-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFJaloyan2017" class="citation arxiv cs1">Jaloyan, Georges-Axel (2017-10-19). "Safe Pointers in SPARK 2014". <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/1710.07047">1710.07047</a></span> [<a rel="nofollow" class="external text" href="https://arxiv.org/archive/cs.PL">cs.PL</a>].</cite></span>
</li>
<li id="cite_note-Lattner-13"><span class="mw-cite-backlink"><b><a href="#cite_ref-Lattner_13-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFLattner" class="citation web cs1">Lattner, Chris. <a rel="nofollow" class="external text" href="http://nondot.org/sabre/">"Chris Lattner's Homepage"</a>. <i>Nondot</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20181225175312/http://nondot.org/sabre/">Archived</a> from the original on 2018-12-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-05-14</span></span>.</cite></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/vlang/v/blob/master/doc/docs.md#introduction">"V documentation (Introduction)"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>. The V Programming Language<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-04</span></span>.</cite></span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><cite id="CITEREFYegulalp2016" class="citation web cs1">Yegulalp, Serdar (2016-08-29). <a rel="nofollow" class="external text" href="https://www.infoworld.com/article/3113083/new-challenger-joins-rust-to-upend-c-language.html">"New challenger joins Rust to topple C language"</a>. <i><a href="InfoWorld" title="InfoWorld">InfoWorld</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20211125104022/https://www.infoworld.com/article/3113083/new-challenger-joins-rust-to-upend-c-language.html">Archived</a> from the original on 2021-11-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-10-19</span></span>.</cite></span>
</li>
<li id="cite_note-MITTechReview-16"><span class="mw-cite-backlink">^ <a href="#cite_ref-MITTechReview_16-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-7"><sup><i><b>h</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-8"><sup><i><b>i</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-9"><sup><i><b>j</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-10"><sup><i><b>k</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-11"><sup><i><b>l</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-12"><sup><i><b>m</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-13"><sup><i><b>n</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-14"><sup><i><b>o</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-15"><sup><i><b>p</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-16"><sup><i><b>q</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-17"><sup><i><b>r</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-18"><sup><i><b>s</b></i></sup></a> <a href="#cite_ref-MITTechReview_16-19"><sup><i><b>t</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFThompson2023" class="citation web cs1">Thompson, Clive (2023-02-14). <a rel="nofollow" class="external text" href="https://www.technologyreview.com/2023/02/14/1067869/rust-worlds-fastest-growing-programming-language/">"How Rust went from a side project to the world's most-loved programming language"</a>. <i>MIT Technology Review</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240919102849/https://www.technologyreview.com/2023/02/14/1067869/rust-worlds-fastest-growing-programming-language/">Archived</a> from the original on 2024-09-19<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-02-23</span></span>.</cite></span>
</li>
<li id="cite_note-Klabnik2016ACMHistory-17"><span class="mw-cite-backlink">^ <a href="#cite_ref-Klabnik2016ACMHistory_17-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-4"><sup><i><b>e</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-5"><sup><i><b>f</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-6"><sup><i><b>g</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-7"><sup><i><b>h</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-8"><sup><i><b>i</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-9"><sup><i><b>j</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-10"><sup><i><b>k</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-11"><sup><i><b>l</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-12"><sup><i><b>m</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-13"><sup><i><b>n</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-14"><sup><i><b>o</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-15"><sup><i><b>p</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-16"><sup><i><b>q</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-17"><sup><i><b>r</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-18"><sup><i><b>s</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-19"><sup><i><b>t</b></i></sup></a> <a href="#cite_ref-Klabnik2016ACMHistory_17-20"><sup><i><b>u</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFKlabnik2016" class="citation book cs1">Klabnik, Steve (2016-06-02). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.1145/2959689.2960081">"The History of Rust"</a>. <i>Applicative 2016</i>. New York, NY, USA: Association for Computing Machinery. p.&nbsp;80. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F2959689.2960081">10.1145/2959689.2960081</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4503-4464-7</bdi>.</cite></span>
</li>
<li id="cite_note-Hoare2010-18"><span class="mw-cite-backlink">^ <a href="#cite_ref-Hoare2010_18-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Hoare2010_18-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Hoare2010_18-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFHoare2010" class="citation conference cs1">Hoare, Graydon (July 2010). <a rel="nofollow" class="external text" href="https://archive.today/20211226213836/http://venge.net/graydon/talks/intro-talk-2.pdf"><i>Project Servo: Technology from the past come to save the future from itself</i></a> <span class="cs1-format">(PDF)</span>. Mozilla Annual Summit. Archived from <a rel="nofollow" class="external text" href="http://venge.net/graydon/talks/intro-talk-2.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2021-12-26<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-10-29</span></span>.</cite></span>
</li>
<li id="cite_note-OCamlCompiler-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-OCamlCompiler_19-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFHoare2016" class="citation web cs1">Hoare, Graydon (November 2016). <a rel="nofollow" class="external text" href="https://github.com/graydon/rust-prehistory/tree/master">"Rust Prehistory (Archive of the original Rust OCaml compiler source code)"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-10-29</span></span>.</cite></span>
</li>
<li id="cite_note-Rust0.1-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-Rust0.1_20-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/rust-lang/rust/milestone/3?closed=1">"0.1 first supported public release Milestone · rust-lang/rust"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-10-29</span></span>.</cite></span>
</li>
<li id="cite_note-Nelson2022RustConf-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-Nelson2022RustConf_21-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFNelson2022" class="citation audio-visual cs1">Nelson, Jynn (2022-08-05). <a rel="nofollow" class="external text" href="https://www.youtube.com/watch?v=oUIjG-y4zaA"><i>RustConf 2022 - Bootstrapping: The once and future compiler</i></a>. Portland, Oregon: Rust Team<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-10-29</span></span> – via YouTube.</cite></span>
</li>
<li id="cite_note-23"><span class="mw-cite-backlink"><b><a href="#cite_ref-23">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://bugzilla.mozilla.org/show_bug.cgi?id=680521">"Rust logo"</a>. <i><a href="Bugzilla" title="Bugzilla">Bugzilla</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240202045212/https://bugzilla.mozilla.org/show_bug.cgi?id=680521">Archived</a> from the original on 2024-02-02<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-02-02</span></span>.</cite></span>
</li>
<li id="cite_note-Rust0.1a-24"><span class="mw-cite-backlink"><b><a href="#cite_ref-Rust0.1a_24-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFAnderson2012" class="citation mailinglist cs1">Anderson, Brian (2012-01-24). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20120124160628/https://mail.mozilla.org/pipermail/rust-dev/2012-January/001256.html">"[rust-dev] The Rust compiler 0.1 is unleashed"</a>. <i>rust-dev</i> (Mailing list). Archived from <a rel="nofollow" class="external text" href="https://mail.mozilla.org/pipermail/rust-dev/2012-January/001256.html">the original</a> on 2012-01-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-01-07</span></span>.</cite></span>
</li>
<li id="cite_note-ExtremeTechRust0.1-25"><span class="mw-cite-backlink"><b><a href="#cite_ref-ExtremeTechRust0.1_25-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFAnthony2012" class="citation web cs1">Anthony, Sebastian (2012-01-24). <a rel="nofollow" class="external text" href="https://www.extremetech.com/internet/115207-mozilla-releases-rust-0-1-the-language-that-will-eventually-usurp-firefoxs-c">"Mozilla releases Rust 0.1, the language that will eventually usurp Firefox's C++"</a>. <i>ExtremeTech</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-01-07</span></span>.</cite></span>
</li>
<li id="cite_note-26"><span class="mw-cite-backlink"><b><a href="#cite_ref-26">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/rust-lang/rust/pull/5412">"Purity by pcwalton · Pull Request #5412 · rust-lang/rust"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-10-29</span></span>.</cite></span>
</li>
<li id="cite_note-27"><span class="mw-cite-backlink"><b><a href="#cite_ref-27">^</a></b></span> <span class="reference-text"><cite id="CITEREFBinstock2014" class="citation news cs1">Binstock, Andrew (2014-01-07). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160807075745/http://www.drdobbs.com/jvm/the-rise-and-fall-of-languages-in-2013/240165192">"The Rise And Fall of Languages in 2013"</a>. <i><a href="Dr._Dobb's_Journal" title="Dr. Dobb's Journal">Dr. Dobb's Journal</a></i>. Archived from <a rel="nofollow" class="external text" href="https://www.drdobbs.com/jvm/the-rise-and-fall-of-languages-in-2013/240165192">the original</a> on 2016-08-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-11-20</span></span>.</cite></span>
</li>
<li id="cite_note-28"><span class="mw-cite-backlink"><b><a href="#cite_ref-28">^</a></b></span> <span class="reference-text"><cite id="CITEREFLardinois2015" class="citation news cs1">Lardinois, Frederic (2015-04-03). <a rel="nofollow" class="external text" href="https://techcrunch.com/2013/04/03/mozilla-and-samsung-collaborate-on-servo-mozillas-next-gen-browser-engine-for-tomorrows-multicore-processors/">"Mozilla And Samsung Team Up To Develop Servo, Mozilla's Next-Gen Browser Engine For Multicore Processors"</a>. <i><a href="TechCrunch" title="TechCrunch">TechCrunch</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160910211537/https://techcrunch.com/2013/04/03/mozilla-and-samsung-collaborate-on-servo-mozillas-next-gen-browser-engine-for-tomorrows-multicore-processors/">Archived</a> from the original on 2016-09-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-06-25</span></span>.</cite></span>
</li>
<li id="cite_note-29"><span class="mw-cite-backlink"><b><a href="#cite_ref-29">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.mozilla.org/en-US/firefox/45.0/releasenotes/">"Firefox 45.0, See All New Features, Updates and Fixes"</a>. <i>Mozilla</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160317215950/https://www.mozilla.org/en-US/firefox/45.0/releasenotes/">Archived</a> from the original on 2016-03-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-10-31</span></span>.</cite></span>
</li>
<li id="cite_note-30"><span class="mw-cite-backlink"><b><a href="#cite_ref-30">^</a></b></span> <span class="reference-text"><cite id="CITEREFLardinois2017" class="citation web cs1">Lardinois, Frederic (2017-09-29). <a rel="nofollow" class="external text" href="https://techcrunch.com/2017/09/29/its-time-to-give-firefox-another-chance/">"It's time to give Firefox another chance"</a>. <i><a href="TechCrunch" title="TechCrunch">TechCrunch</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230815025149/https://techcrunch.com/2017/09/29/its-time-to-give-firefox-another-chance/">Archived</a> from the original on 2023-08-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-08-15</span></span>.</cite></span>
</li>
<li id="cite_note-2017PortugalEnergyStudy-31"><span class="mw-cite-backlink"><b><a href="#cite_ref-2017PortugalEnergyStudy_31-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFPereiraCoutoRibeiroRua2017" class="citation book cs1">Pereira, Rui; Couto, Marco; Ribeiro, Francisco; Rua, Rui; Cunha, Jácome; Fernandes, João Paulo; Saraiva, João (2017-10-23). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.1145/3136014.3136031">"Energy efficiency across programming languages: How do energy, time, and memory relate?"</a>. <i>Proceedings of the 10th ACM SIGPLAN International Conference on Software Language Engineering</i>. SLE 2017. New York, NY, USA: Association for Computing Machinery. pp.&nbsp;<span class="nowrap">256–</span>267. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3136014.3136031">10.1145/3136014.3136031</a>. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<a rel="nofollow" class="external text" href="https://hdl.handle.net/1822%2F65359">1822/65359</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4503-5525-4</bdi>.</cite></span>
</li>
<li id="cite_note-33"><span class="mw-cite-backlink"><b><a href="#cite_ref-33">^</a></b></span> <span class="reference-text"><cite id="CITEREFCimpanu2020" class="citation web cs1">Cimpanu, Catalin (2020-08-11). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/mozilla-lays-off-250-employees-while-it-refocuses-on-commercial-products/">"Mozilla lays off 250 employees while it refocuses on commercial products"</a>. <i><a href="ZDNET" title="ZDNET">ZDNET</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220318025804/https://www.zdnet.com/article/mozilla-lays-off-250-employees-while-it-refocuses-on-commercial-products/">Archived</a> from the original on 2022-03-18<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-02</span></span>.</cite></span>
</li>
<li id="cite_note-34"><span class="mw-cite-backlink"><b><a href="#cite_ref-34">^</a></b></span> <span class="reference-text"><cite id="CITEREFCooper2020" class="citation web cs1">Cooper, Daniel (2020-08-11). <a rel="nofollow" class="external text" href="https://www.engadget.com/mozilla-firefox-250-employees-layoffs-151324924.html">"Mozilla lays off 250 employees due to the pandemic"</a>. <i><a href="Engadget" title="Engadget">Engadget</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201213020220/https://www.engadget.com/mozilla-firefox-250-employees-layoffs-151324924.html">Archived</a> from the original on 2020-12-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-02</span></span>.</cite></span>
</li>
<li id="cite_note-35"><span class="mw-cite-backlink"><b><a href="#cite_ref-35">^</a></b></span> <span class="reference-text"><cite id="CITEREFTung2020" class="citation web cs1">Tung, Liam (2020-08-21). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/programming-language-rust-mozilla-job-cuts-have-hit-us-badly-but-heres-how-well-survive/">"Programming language Rust: Mozilla job cuts have hit us badly but here's how we'll survive"</a>. <i><a href="ZDNET" title="ZDNET">ZDNET</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220421083509/https://www.zdnet.com/article/programming-language-rust-mozilla-job-cuts-have-hit-us-badly-but-heres-how-well-survive/">Archived</a> from the original on 2022-04-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-04-21</span></span>.</cite></span>
</li>
<li id="cite_note-36"><span class="mw-cite-backlink"><b><a href="#cite_ref-36">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.rust-lang.org/2020/08/18/laying-the-foundation-for-rusts-future.html">"Laying the foundation for Rust's future"</a>. <i>Rust Blog</i>. 2020-08-18. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201202022933/https://blog.rust-lang.org/2020/08/18/laying-the-foundation-for-rusts-future.html">Archived</a> from the original on 2020-12-02<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-12-02</span></span>.</cite></span>
</li>
<li id="cite_note-37"><span class="mw-cite-backlink"><b><a href="#cite_ref-37">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://foundation.rust-lang.org/news/2021-02-08-hello-world/">"Hello World!"</a>. <i>Rust Foundation</i>. 2020-02-08. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220419124635/https://foundation.rust-lang.org/news/2021-02-08-hello-world/">Archived</a> from the original on 2022-04-19<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-06-04</span></span>.</cite></span>
</li>
<li id="cite_note-38"><span class="mw-cite-backlink"><b><a href="#cite_ref-38">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.mozilla.org/blog/2021/02/08/mozilla-welcomes-the-rust-foundation">"Mozilla Welcomes the Rust Foundation"</a>. <i>Mozilla Blog</i>. 2021-02-09. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210208212031/https://blog.mozilla.org/blog/2021/02/08/mozilla-welcomes-the-rust-foundation/">Archived</a> from the original on 2021-02-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-02-09</span></span>.</cite></span>
</li>
<li id="cite_note-39"><span class="mw-cite-backlink"><b><a href="#cite_ref-39">^</a></b></span> <span class="reference-text"><cite id="CITEREFAmadeo2021" class="citation web cs1">Amadeo, Ron (2021-04-07). <a rel="nofollow" class="external text" href="https://arstechnica.com/gadgets/2021/04/google-is-now-writing-low-level-android-code-in-rust/">"Google is now writing low-level Android code in Rust"</a>. <i>Ars Technica</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210408001446/https://arstechnica.com/gadgets/2021/04/google-is-now-writing-low-level-android-code-in-rust/">Archived</a> from the original on 2021-04-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-04-08</span></span>.</cite></span>
</li>
<li id="cite_note-moderation-40"><span class="mw-cite-backlink"><b><a href="#cite_ref-moderation_40-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFAnderson2021" class="citation news cs1">Anderson, Tim (2021-11-23). <a rel="nofollow" class="external text" href="https://www.theregister.com/2021/11/23/rust_moderation_team_quits/">"Entire Rust moderation team resigns"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220714093245/https://www.theregister.com/2021/11/23/rust_moderation_team_quits/">Archived</a> from the original on 2022-07-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-08-04</span></span>.</cite></span>
</li>
<li id="cite_note-41"><span class="mw-cite-backlink"><b><a href="#cite_ref-41">^</a></b></span> <span class="reference-text"><cite id="CITEREFLevickBos" class="citation web cs1">Levick, Ryan; Bos, Mara. <a rel="nofollow" class="external text" href="https://blog.rust-lang.org/inside-rust/2022/05/19/governance-update.html">"Governance Update"</a>. <i>Inside Rust Blog</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20221027030926/https://blog.rust-lang.org/inside-rust/2022/05/19/governance-update.html">Archived</a> from the original on 2022-10-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-10-27</span></span>.</cite></span>
</li>
<li id="cite_note-42"><span class="mw-cite-backlink"><b><a href="#cite_ref-42">^</a></b></span> <span class="reference-text"><cite id="CITEREFClaburn2023" class="citation news cs1">Claburn, Thomas (2023-04-17). <a rel="nofollow" class="external text" href="https://www.theregister.com/2023/04/17/rust_foundation_apologizes_trademark_policy/">"Rust Foundation apologizes for trademark policy confusion"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230507053637/https://www.theregister.com/2023/04/17/rust_foundation_apologizes_trademark_policy/">Archived</a> from the original on 2023-05-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-05-07</span></span>.</cite></span>
</li>
<li id="cite_note-WhiteHouse1-43"><span class="mw-cite-backlink"><b><a href="#cite_ref-WhiteHouse1_43-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFGross2024" class="citation web cs1">Gross, Grant (2024-02-27). <a rel="nofollow" class="external text" href="https://www.infoworld.com/article/2336216/white-house-urges-developers-to-dump-c-and-c.html">"White House urges developers to dump C and C++"</a>. <i><a href="InfoWorld" title="InfoWorld">InfoWorld</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-01-26</span></span>.</cite></span>
</li>
<li id="cite_note-WhiteHouse2-44"><span class="mw-cite-backlink"><b><a href="#cite_ref-WhiteHouse2_44-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFWarminsky2024" class="citation web cs1">Warminsky, Joe (2024-02-27). <a rel="nofollow" class="external text" href="https://therecord.media/memory-related-software-bugs-white-house-code-report-oncd">"After decades of memory-related software bugs, White House calls on industry to act"</a>. <i>The Record</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-01-26</span></span>.</cite></span>
</li>
<li id="cite_note-WhiteHouseFullReport-45"><span class="mw-cite-backlink"><b><a href="#cite_ref-WhiteHouseFullReport_45-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20250118013136/https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/">"Press Release: Future Software Should Be Memory Safe"</a>. <a href="White_House" title="White House">The White House</a>. 2024-02-26. Archived from <a rel="nofollow" class="external text" href="https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/">the original</a> on 2025-01-18<span class="reference-accessdate">. Retrieved <span class="nowrap">2025-01-26</span></span>.</cite></span>
</li>
<li id="cite_note-WhiteHouse3-46"><span class="mw-cite-backlink"><b><a href="#cite_ref-WhiteHouse3_46-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFJack2024" class="citation web cs1">Jack, Bobby (2024-02-29). <a rel="nofollow" class="external text" href="https://www.makeuseof.com/memory-safe-programming-white-house-wants/">"The White House Wants Memory-Safe Programming, but What Is That?"</a>. <i>MakeUseOf</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-01-26</span></span>.</cite></span>
</li>
<li id="cite_note-WhiteHouse4-47"><span class="mw-cite-backlink"><b><a href="#cite_ref-WhiteHouse4_47-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFDonovan2024" class="citation web cs1">Donovan, Ryan (2024-12-30). <a rel="nofollow" class="external text" href="https://stackoverflow.blog/2024/12/30/in-rust-we-trust-white-house-office-urges-memory-safety/">"In Rust we trust? White House Office urges memory safety"</a>. <i><a href="Stack_Overflow" title="Stack Overflow">The Stack Overflow Blog</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-01-26</span></span>.</cite></span>
</li>
<li id="cite_note-48"><span class="mw-cite-backlink"><b><a href="#cite_ref-48">^</a></b></span> <span class="reference-text"><cite id="CITEREFProven2019" class="citation news cs1">Proven, Liam (2019-11-27). <a rel="nofollow" class="external text" href="https://www.theregister.com/2021/11/19/rust_foundation_ceo/">"Rebecca Rumbul named new CEO of The Rust Foundation"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220714110957/https://www.theregister.com/2021/11/19/rust_foundation_ceo/">Archived</a> from the original on 2022-07-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-14</span></span>. <q>Both are curly bracket languages, with C-like syntax that makes them unintimidating for C programmers.</q></cite></span>
</li>
<li id="cite_note-:4-49"><span class="mw-cite-backlink">^ <a href="#cite_ref-:4_49-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:4_49-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:4_49-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFVigliarolo2021" class="citation web cs1">Vigliarolo, Brandon (2021-02-10). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230320172900/https://www.techrepublic.com/article/the-rust-programming-language-now-has-its-own-independent-foundation/">"The Rust programming language now has its own independent foundation"</a>. <i><a href="TechRepublic" title="TechRepublic">TechRepublic</a></i>. Archived from <a rel="nofollow" class="external text" href="https://www.techrepublic.com/article/the-rust-programming-language-now-has-its-own-independent-foundation/">the original</a> on 2023-03-20<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-14</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019263-50"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019263_50-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, p.&nbsp;263.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols20195–6-51"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols20195–6_51-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;5–6.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202332-52"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202332_52-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, p.&nbsp;32.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202332–33-53"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202332–33_53-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;32–33.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202349–50-54"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202349–50_54-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;49–50.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202334–36-55"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202334–36_55-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;34–36.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols20236,_47,_53-56"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols20236,_47,_53_56-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;6, 47, 53.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202347–48-57"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202347–48_57-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;47–48.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202350–53-58"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEKlabnikNichols202350–53_58-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEKlabnikNichols202350–53_58-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;50–53.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202356-59"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202356_59-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, p.&nbsp;56.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202357–58-60"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202357–58_60-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;57–58.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202354–56-61"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202354–56_61-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;54–56.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019104–109-62"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019104–109_62-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;104–109.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201924-63"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201924_63-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;24.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201936–38-64"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201936–38_64-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;36–38.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202336–38-65"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202336–38_65-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;36–38.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023502-66"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023502_66-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, p.&nbsp;502.</span>
</li>
<li id="cite_note-67"><span class="mw-cite-backlink"><b><a href="#cite_ref-67">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.unicode.org/glossary/">"Glossary of Unicode Terms"</a>. <i><a href="Unicode_Consortium" title="Unicode Consortium">Unicode Consortium</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20180924092749/http://www.unicode.org/glossary/">Archived</a> from the original on 2018-09-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-30</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201938–40-68"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201938–40_68-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;38–40.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202340–42-69"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202340–42_69-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;40–42.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202342-70"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202342_70-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, p.&nbsp;42.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201959–61-71"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201959–61_71-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;59–61.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201963–68-72"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEKlabnikNichols201963–68_72-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEKlabnikNichols201963–68_72-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;63–68.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201974–75-73"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201974–75_73-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;74–75.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202371–72-74"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202371–72_74-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;71–72.</span>
</li>
<li id="cite_note-BeyondSafety-75"><span class="mw-cite-backlink">^ <a href="#cite_ref-BeyondSafety_75-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-BeyondSafety_75-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFBalasubramanianBaranowskiBurtsevPanda2017" class="citation book cs1">Balasubramanian, Abhiram; Baranowski, Marek S.; Burtsev, Anton; Panda, Aurojit; Rakamarić, Zvonimir; Ryzhyk, Leonid (2017-05-07). <a rel="nofollow" class="external text" href="https://doi.org/10.1145/3102980.3103006">"System Programming in Rust"</a>. <i>Proceedings of the 16th Workshop on Hot Topics in Operating Systems</i>. HotOS '17. New York, NY, US: Association for Computing Machinery. pp.&nbsp;<span class="nowrap">156–</span>161. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3102980.3103006">10.1145/3102980.3103006</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4503-5068-6</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:24100599">24100599</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220611034046/https://dl.acm.org/doi/10.1145/3102980.3103006">Archived</a> from the original on 2022-06-11<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-06-01</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023327–30-76"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023327–30_76-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;327–30.</span>
</li>
<li id="cite_note-77"><span class="mw-cite-backlink"><b><a href="#cite_ref-77">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/rust-by-example/scope/lifetime.html">"Lifetimes"</a>. <i>Rust by Example</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20241116192422/https://doc.rust-lang.org/rust-by-example/scope/lifetime.html">Archived</a> from the original on 2024-11-16<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-10-29</span></span>.</cite></span>
</li>
<li id="cite_note-78"><span class="mw-cite-backlink"><b><a href="#cite_ref-78">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/rust-by-example/scope/lifetime/explicit.html">"Explicit annotation"</a>. <i>Rust by Example</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-10-29</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019194-79"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEKlabnikNichols2019194_79-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEKlabnikNichols2019194_79-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, p.&nbsp;194.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201975,_134-80"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201975,_134_80-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;75, 134.</span>
</li>
<li id="cite_note-81"><span class="mw-cite-backlink"><b><a href="#cite_ref-81">^</a></b></span> <span class="reference-text"><cite id="CITEREFShamrell-Harrington2022" class="citation web cs1">Shamrell-Harrington, Nell (2022-04-15). <a rel="nofollow" class="external text" href="https://www.infoq.com/presentations/rust-borrow-checker/">"The Rust Borrow Checker – a Deep Dive"</a>. <i>InfoQ</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220625140128/https://www.infoq.com/presentations/rust-borrow-checker/">Archived</a> from the original on 2022-06-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-06-25</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019194–195-82"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019194–195_82-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;194–195.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023208–12-83"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023208–12_83-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;208–12.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023[httpsdocrust-langorgbookch04-02-references-and-borrowinghtml_4.2._References_and_Borrowing]-84"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023[httpsdocrust-langorgbookch04-02-references-and-borrowinghtml_4.2._References_and_Borrowing]_84-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, <a rel="nofollow" class="external text" href="https://doc.rust-lang.org/book/ch04-02-references-and-borrowing.html">4.2. References and Borrowing</a>.</span>
</li>
<li id="cite_note-Pearce-85"><span class="mw-cite-backlink"><b><a href="#cite_ref-Pearce_85-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFPearce2021" class="citation journal cs1">Pearce, David (2021-04-17). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.1145/3443420">"A Lightweight Formalism for Reference Lifetimes and Borrowing in Rust"</a>. <i>ACM Transactions on Programming Languages and Systems</i>. <b>43</b>: <span class="nowrap">1–</span>73. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3443420">10.1145/3443420</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240415053627/https://dl.acm.org/doi/10.1145/3443420">Archived</a> from the original on 2024-04-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-12-11</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201983-86"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201983_86-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, p.&nbsp;83.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201997-87"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201997_87-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, p.&nbsp;97.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201998–101-88"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201998–101_88-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;98–101.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019438–440-89"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019438–440_89-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;438–440.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201993-90"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201993_90-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;93.</span>
</li>
<li id="cite_note-FOOTNOTEGjengset2021213–215-91"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEGjengset2021213–215_91-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFGjengset2021">Gjengset 2021</a>, pp.&nbsp;213–215.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023108–110,_113–114,_116–117-92"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023108–110,_113–114,_116–117_92-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;108–110, 113–114, 116–117.</span>
</li>
<li id="cite_note-FOOTNOTEGjengset2021155-156-93"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEGjengset2021155-156_93-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFGjengset2021">Gjengset 2021</a>, p.&nbsp;155-156.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023421–423-94"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023421–423_94-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;421–423.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019418–427-95"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019418–427_95-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;418–427.</span>
</li>
<li id="cite_note-96"><span class="mw-cite-backlink"><b><a href="#cite_ref-96">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/rust-by-example/types/cast.html">"Casting"</a>. <i>Rust by Example</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-04-01</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023378-97"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023378_97-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, p.&nbsp;378.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023192–198-98"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEKlabnikNichols2023192–198_98-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEKlabnikNichols2023192–198_98-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-FOOTNOTEKlabnikNichols2023192–198_98-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;192–198.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols202398-99"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols202398_99-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, p.&nbsp;98.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019171–172,_205-100"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019171–172,_205_100-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;171–172, 205.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023191–192-101"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEKlabnikNichols2023191–192_101-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEKlabnikNichols2023191–192_101-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;191–192.</span>
</li>
<li id="cite_note-FOOTNOTEGjengset202125-102"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEGjengset202125_102-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFGjengset2021">Gjengset 2021</a>, p.&nbsp;25.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023[httpsdocrust-langorgbookch18-02-trait-objectshtml_18.2._Using_Trait_Objects_That_Allow_for_Values_of_Different_Types]-103"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023[httpsdocrust-langorgbookch18-02-trait-objectshtml_18.2._Using_Trait_Objects_That_Allow_for_Values_of_Different_Types]_103-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, <a rel="nofollow" class="external text" href="https://doc.rust-lang.org/book/ch18-02-trait-objects.html">18.2. Using Trait Objects That Allow for Values of Different Types</a>.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019441–442-104"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019441–442_104-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;441–442.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019379–380-105"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019379–380_105-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;379–380.</span>
</li>
<li id="cite_note-cnet-106"><span class="mw-cite-backlink"><b><a href="#cite_ref-cnet_106-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFRosenblatt2013" class="citation web cs1">Rosenblatt, Seth (2013-04-03). <a rel="nofollow" class="external text" href="http://reviews.cnet.com/8301-3514_7-57577639/samsung-joins-mozillas-quest-for-rust/">"Samsung joins Mozilla's quest for Rust"</a>. <a href="CNET" title="CNET">CNET</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130404142333/http://reviews.cnet.com/8301-3514_7-57577639/samsung-joins-mozillas-quest-for-rust/">Archived</a> from the original on 2013-04-04<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-04-05</span></span>.</cite></span>
</li>
<li id="cite_note-lwn-107"><span class="mw-cite-backlink"><b><a href="#cite_ref-lwn_107-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFBrown2013" class="citation web cs1">Brown, Neil (2013-04-17). <a rel="nofollow" class="external text" href="https://lwn.net/Articles/547145/">"A taste of Rust"</a>. <i><a href="LWN.net" title="LWN.net">LWN.net</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20130426010754/http://lwn.net/Articles/547145/">Archived</a> from the original on 2013-04-26<span class="reference-accessdate">. Retrieved <span class="nowrap">2013-04-25</span></span>.</cite></span>
</li>
<li id="cite_note-The_Rustonomicon-108"><span class="mw-cite-backlink"><b><a href="#cite_ref-The_Rustonomicon_108-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/nomicon/races.html">"Races"</a>. <i>The Rustonomicon</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170710194643/https://doc.rust-lang.org/nomicon/races.html">Archived</a> from the original on 2017-07-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-07-03</span></span>.</cite></span>
</li>
<li id="cite_note-Sensors-109"><span class="mw-cite-backlink"><b><a href="#cite_ref-Sensors_109-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFVanderveldenDe_SmetDeacSteenhaut2024" class="citation journal cs1">Vandervelden, Thibaut; De Smet, Ruben; Deac, Diana; Steenhaut, Kris; Braeken, An (2024-09-07). <a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC11398098">"Overview of Embedded Rust Operating Systems and Frameworks"</a>. <i>Sensors</i>. <b>24</b> (17): 5818. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2024Senso..24.5818V">2024Senso..24.5818V</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.3390%2Fs24175818">10.3390/s24175818</a></span>. <a href="PMC_(identifier)" class="mw-redirect" title="PMC (identifier)">PMC</a>&nbsp;<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://www.ncbi.nlm.nih.gov/pmc/articles/PMC11398098">11398098</a></span>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a>&nbsp;<a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/39275729">39275729</a>.</cite></span>
</li>
<li id="cite_note-lang-faq-110"><span class="mw-cite-backlink"><b><a href="#cite_ref-lang-faq_110-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20150420104147/http://static.rust-lang.org/doc/master/complement-lang-faq.html">"The Rust Language FAQ"</a>. The Rust Programming Language. 2015. Archived from <a rel="nofollow" class="external text" href="http://static.rust-lang.org/doc/master/complement-lang-faq.html">the original</a> on 2015-04-20<span class="reference-accessdate">. Retrieved <span class="nowrap">2017-04-24</span></span>.</cite></span>
</li>
<li id="cite_note-111"><span class="mw-cite-backlink"><b><a href="#cite_ref-111">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/rust-by-example/scope/raii.html">"RAII"</a>. <i>Rust by Example</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190421131142/https://doc.rust-lang.org/rust-by-example/scope/raii.html">Archived</a> from the original on 2019-04-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-11-22</span></span>.</cite></span>
</li>
<li id="cite_note-112"><span class="mw-cite-backlink"><b><a href="#cite_ref-112">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.rust-lang.org/2015/05/11/traits.html">"Abstraction without overhead: traits in Rust"</a>. <i>Rust Blog</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210923101530/https://blog.rust-lang.org/2015/05/11/traits.html">Archived</a> from the original on 2021-09-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-10-19</span></span>.</cite></span>
</li>
<li id="cite_note-113"><span class="mw-cite-backlink"><b><a href="#cite_ref-113">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/stable/rust-by-example/std/box.html">"Box, stack and heap"</a>. <i>Rust by Example</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220531114141/https://doc.rust-lang.org/stable/rust-by-example/std/box.html">Archived</a> from the original on 2022-05-31<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-06-13</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols201970–75-114"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols201970–75_114-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;70–75.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019323-115"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019323_115-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, p.&nbsp;323.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023420–429-116"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023420–429_116-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;420–429.</span>
</li>
<li id="cite_note-FOOTNOTEMcNamara2021139,_376–379,_395-117"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEMcNamara2021139,_376–379,_395_117-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFMcNamara2021">McNamara 2021</a>, p.&nbsp;139, 376–379, 395.</span>
</li>
<li id="cite_note-UnsafeRustUse-118"><span class="mw-cite-backlink">^ <a href="#cite_ref-UnsafeRustUse_118-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-UnsafeRustUse_118-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFAstrauskasMathejaPoliMüller2020" class="citation journal cs1">Astrauskas, Vytautas; Matheja, Christoph; Poli, Federico; Müller, Peter; Summers, Alexander J. (2020-11-13). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.1145/3428204">"How do programmers use unsafe rust?"</a>. <i>Proceedings of the ACM on Programming Languages</i>. <b>4</b> (OOPSLA): <span class="nowrap">1–</span>27. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3428204">10.1145/3428204</a>. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/20.500.11850%2F465785">20.500.11850/465785</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/2475-1421">2475-1421</a>.</cite></span>
</li>
<li id="cite_note-119"><span class="mw-cite-backlink"><b><a href="#cite_ref-119">^</a></b></span> <span class="reference-text"><cite id="CITEREFLattuadaHanceChoBrun2023" class="citation journal cs1">Lattuada, Andrea; Hance, Travis; Cho, Chanhee; Brun, Matthias; Subasinghe, Isitha; Zhou, Yi; Howell, Jon; Parno, Bryan; Hawblitzel, Chris (2023-04-06). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.1145/3586037">"Verus: Verifying Rust Programs using Linear Ghost Types"</a>. <i>Software Artifact (virtual machine, pre-built distributions) for "Verus: Verifying Rust Programs using Linear Ghost Types"</i>. <b>7</b> (OOPSLA1): 85:286–85:315. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3586037">10.1145/3586037</a>.</cite></span>
</li>
<li id="cite_note-120"><span class="mw-cite-backlink"><b><a href="#cite_ref-120">^</a></b></span> <span class="reference-text"><cite id="CITEREFMilanoTurcottiMyers2022" class="citation journal cs1">Milano, Mae; Turcotti, Julia; Myers, Andrew C. (2022-06-09). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.1145/3519939.3523443">"A flexible type system for fearless concurrency"</a>. <i>Proceedings of the 43rd ACM SIGPLAN International Conference on Programming Language Design and Implementation</i>. PLDI 2022. New York, NY, USA: Association for Computing Machinery: <span class="nowrap">458–</span>473. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3519939.3523443">10.1145/3519939.3523443</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4503-9265-5</bdi>.</cite></span>
</li>
<li id="cite_note-121"><span class="mw-cite-backlink"><b><a href="#cite_ref-121">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://rust-unofficial.github.io/too-many-lists/">"Introduction - Learning Rust With Entirely Too Many Linked Lists"</a>. <i>rust-unofficial.github.io</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-08-06</span></span>.</cite></span>
</li>
<li id="cite_note-122"><span class="mw-cite-backlink"><b><a href="#cite_ref-122">^</a></b></span> <span class="reference-text"><cite id="CITEREFNobleMackayWrigstad2023" class="citation journal cs1">Noble, James; Mackay, Julian; Wrigstad, Tobias (2023-10-16). <a rel="nofollow" class="external text" href="https://doi.org/10.1145/3611096.3611097">"Rusty Links in Local Chains✱"</a>. <i>Proceedings of the 24th ACM International Workshop on Formal Techniques for Java-like Programs</i>. FTfJP '22. New York, NY, USA: Association for Computing Machinery: <span class="nowrap">1–</span>3. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3611096.3611097">10.1145/3611096.3611097</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>979-8-4007-0784-1</bdi>.</cite></span>
</li>
<li id="cite_note-IsRustSafely-123"><span class="mw-cite-backlink">^ <a href="#cite_ref-IsRustSafely_123-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-IsRustSafely_123-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFEvansCampbellSoffa2020" class="citation journal cs1">Evans, Ana Nora; Campbell, Bradford; Soffa, Mary Lou (2020-10-01). <a rel="nofollow" class="external text" href="https://doi.org/10.1145/3377811.3380413">"Is rust used safely by software developers?"</a>. <i>Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering</i>. ICSE '20. New York, NY, USA: Association for Computing Machinery: <span class="nowrap">246–</span>257. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3377811.3380413">10.1145/3377811.3380413</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4503-7121-6</bdi>.</cite></span>
</li>
<li id="cite_note-124"><span class="mw-cite-backlink"><b><a href="#cite_ref-124">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/reference/behavior-considered-undefined.html">"Behavior considered undefined - The Rust Reference"</a>. <i>doc.rust-lang.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-08-06</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023449–455-125"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023449–455_125-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, pp.&nbsp;449–455.</span>
</li>
<li id="cite_note-FOOTNOTEGjengset2021101–102-126"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEGjengset2021101–102_126-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFGjengset2021">Gjengset 2021</a>, pp.&nbsp;101–102.</span>
</li>
<li id="cite_note-Rust_Ref._–_Macros_By_Example-127"><span class="mw-cite-backlink"><b><a href="#cite_ref-Rust_Ref._–_Macros_By_Example_127-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/reference/macros-by-example.html">"Macros By Example"</a>. <i>The Rust Reference</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230421052332/https://doc.rust-lang.org/reference/macros-by-example.html">Archived</a> from the original on 2023-04-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-04-21</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019446–448-128"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019446–448_128-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;446–448.</span>
</li>
<li id="cite_note-rust-procedural-macros-129"><span class="mw-cite-backlink"><b><a href="#cite_ref-rust-procedural-macros_129-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/reference/procedural-macros.html">"Procedural Macros"</a>. <i>The Rust Programming Language Reference</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201107233444/https://doc.rust-lang.org/reference/procedural-macros.html">Archived</a> from the original on 2020-11-07<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-03-23</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019449–455-130"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019449–455_130-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;449–455.</span>
</li>
<li id="cite_note-131"><span class="mw-cite-backlink"><b><a href="#cite_ref-131">^</a></b></span> <span class="reference-text"><cite id="CITEREFBaumgartner2025" class="citation web cs1">Baumgartner, Stefan (2025-05-23). <a rel="nofollow" class="external text" href="https://www.heise.de/en/background/Programming-language-Rust-2024-is-the-most-comprehensive-edition-to-date-10393917.html">"Programming language: Rust 2024 is the most comprehensive edition to date"</a>. <i><a href="Heise_online" class="mw-redirect" title="Heise online">heise online</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-28</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEGjengset2021193–209-133"><span class="mw-cite-backlink">^ <a href="#cite_ref-FOOTNOTEGjengset2021193–209_133-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-FOOTNOTEGjengset2021193–209_133-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-FOOTNOTEGjengset2021193–209_133-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><a href="#CITEREFGjengset2021">Gjengset 2021</a>, pp.&nbsp;193–209.</span>
</li>
<li id="cite_note-134"><span class="mw-cite-backlink"><b><a href="#cite_ref-134">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.infoq.com/news/2020/12/cpp-rust-interop-cxx/">"Safe Interoperability between Rust and C++ with CXX"</a>. <i>InfoQ</i>. 2020-12-06. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210122142035/https://www.infoq.com/news/2020/12/cpp-rust-interop-cxx/">Archived</a> from the original on 2021-01-22<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-01-03</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEBlandyOrendorffTindall20216–8-135"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEBlandyOrendorffTindall20216–8_135-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFBlandyOrendorffTindall2021">Blandy, Orendorff &amp; Tindall 2021</a>, pp.&nbsp;6–8.</span>
</li>
<li id="cite_note-136"><span class="mw-cite-backlink"><b><a href="#cite_ref-136">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://rustc-dev-guide.rust-lang.org/overview.html">"Overview of the compiler"</a>. <i>Rust Compiler Development Guide</i>. Rust project contributors. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230531035222/https://rustc-dev-guide.rust-lang.org/overview.html">Archived</a> from the original on 2023-05-31<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-11-07</span></span>.</cite></span>
</li>
<li id="cite_note-137"><span class="mw-cite-backlink"><b><a href="#cite_ref-137">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://rustc-dev-guide.rust-lang.org/backend/codegen.html">"Code Generation"</a>. <i>Rust Compiler Development Guide</i>. Rust project contributors<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-03</span></span>.</cite></span>
</li>
<li id="cite_note-138"><span class="mw-cite-backlink"><b><a href="#cite_ref-138">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/rust-lang/rustc_codegen_gcc#Motivation">"rust-lang/rustc_codegen_gcc"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>. The Rust Programming Language. 2024-03-02<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-03</span></span>.</cite></span>
</li>
<li id="cite_note-139"><span class="mw-cite-backlink"><b><a href="#cite_ref-139">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/rust-lang/rustc_codegen_cranelift">"rust-lang/rustc_codegen_cranelift"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>. The Rust Programming Language. 2024-03-02<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-03</span></span>.</cite></span>
</li>
<li id="cite_note-Nature-140"><span class="mw-cite-backlink">^ <a href="#cite_ref-Nature_140-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-Nature_140-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-Nature_140-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFPerkel2020" class="citation journal cs1">Perkel, Jeffrey M. (2020-12-01). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.nature.com/articles/d41586-020-03382-2">"Why scientists are turning to Rust"</a></span>. <i><a href="Nature_(journal)" title="Nature (journal)">Nature</a></i>. <b>588</b> (7836): <span class="nowrap">185–</span>186. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2020Natur.588..185P">2020Natur.588..185P</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1038%2Fd41586-020-03382-2">10.1038/d41586-020-03382-2</a>. <a href="PMID_(identifier)" class="mw-redirect" title="PMID (identifier)">PMID</a>&nbsp;<a rel="nofollow" class="external text" href="https://pubmed.ncbi.nlm.nih.gov/33262490">33262490</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:227251258">227251258</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220506040523/https://www.nature.com/articles/d41586-020-03382-2">Archived</a> from the original on 2022-05-06<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-05-15</span></span>.</cite></span>
</li>
<li id="cite_note-141"><span class="mw-cite-backlink"><b><a href="#cite_ref-141">^</a></b></span> <span class="reference-text"><cite id="CITEREFSimone2019" class="citation web cs1">Simone, Sergio De (2019-04-18). <a rel="nofollow" class="external text" href="https://www.infoq.com/news/2019/04/rust-1.34-additional-registries">"Rust 1.34 Introduces Alternative Registries for Non-Public Crates"</a>. <i>InfoQ</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220714164454/https://www.infoq.com/news/2019/04/rust-1.34-additional-registries">Archived</a> from the original on 2022-07-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-14</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2019511–512-142"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2019511–512_142-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, pp.&nbsp;511–512.</span>
</li>
<li id="cite_note-143"><span class="mw-cite-backlink"><b><a href="#cite_ref-143">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://github.com/rust-lang/rust-clippy">"Clippy"</a>. <i><a href="GitHub" title="GitHub">GitHub</a></i>. The Rust Programming Language. 2023-11-30. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210523042004/https://github.com/rust-lang/rust-clippy">Archived</a> from the original on 2021-05-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-30</span></span>.</cite></span>
</li>
<li id="cite_note-144"><span class="mw-cite-backlink"><b><a href="#cite_ref-144">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://rust-lang.github.io/rust-clippy/master/index.html">"Clippy Lints"</a>. <i>The Rust Programming Language</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-30</span></span>.</cite></span>
</li>
<li id="cite_note-Rust_Book_G-145"><span class="mw-cite-backlink"><b><a href="#cite_ref-Rust_Book_G_145-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, Appendix G – How Rust is Made and "Nightly Rust"</span>
</li>
<li id="cite_note-FOOTNOTEBlandyOrendorffTindall2021176–177-146"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEBlandyOrendorffTindall2021176–177_146-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFBlandyOrendorffTindall2021">Blandy, Orendorff &amp; Tindall 2021</a>, pp.&nbsp;176–177.</span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols2023623-147"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols2023623_147-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2023">Klabnik &amp; Nichols 2023</a>, p.&nbsp;623.</span>
</li>
<li id="cite_note-148"><span class="mw-cite-backlink"><b><a href="#cite_ref-148">^</a></b></span> <span class="reference-text"><cite id="CITEREFAnderson2021" class="citation web cs1">Anderson, Tim (2021-11-30). <a rel="nofollow" class="external text" href="https://www.theregister.com/2021/11/30/aws_reinvent_rust/">"Can Rust save the planet? Why, and why not"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220711001629/https://www.theregister.com/2021/11/30/aws_reinvent_rust/">Archived</a> from the original on 2022-07-11<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-11</span></span>.</cite></span>
</li>
<li id="cite_note-149"><span class="mw-cite-backlink"><b><a href="#cite_ref-149">^</a></b></span> <span class="reference-text"><cite id="CITEREFYegulalp2021" class="citation web cs1">Yegulalp, Serdar (2021-10-06). <a rel="nofollow" class="external text" href="https://www.infoworld.com/article/3218074/what-is-rust-safe-fast-and-easy-software-development.html">"What is the Rust language? Safe, fast, and easy software development"</a>. <i><a href="InfoWorld" title="InfoWorld">InfoWorld</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220624101013/https://www.infoworld.com/article/3218074/what-is-rust-safe-fast-and-easy-software-development.html">Archived</a> from the original on 2022-06-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-06-25</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEMcNamara202111-150"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEMcNamara202111_150-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFMcNamara2021">McNamara 2021</a>, p.&nbsp;11.</span>
</li>
<li id="cite_note-SaferAtAnySpeed-151"><span class="mw-cite-backlink">^ <a href="#cite_ref-SaferAtAnySpeed_151-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-SaferAtAnySpeed_151-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFPopescuXuApostolakisAugust2021" class="citation journal cs1">Popescu, Natalie; Xu, Ziyang; Apostolakis, Sotiris; August, David I.; Levy, Amit (2021-10-15). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3485480">"Safer at any speed: automatic context-aware safety enhancement for Rust"</a>. <i>Proceedings of the ACM on Programming Languages</i>. <b>5</b> (OOPSLA). Section 2. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3485480">10.1145/3485480</a></span>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:238212612">238212612</a>. p.&nbsp;5: <q>We observe a large variance in the overheads of checked indexing: 23.6% of benchmarks do report significant performance hits from checked indexing, but 64.5% report little-to-no impact and, surprisingly, 11.8% report improved performance ... Ultimately, while unchecked indexing can improve performance, most of the time it does not.</q></cite></span>
</li>
<li id="cite_note-FOOTNOTEMcNamara202119,_27-152"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEMcNamara202119,_27_152-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFMcNamara2021">McNamara 2021</a>, p.&nbsp;19, 27.</span>
</li>
<li id="cite_note-153"><span class="mw-cite-backlink"><b><a href="#cite_ref-153">^</a></b></span> <span class="reference-text"><cite id="CITEREFCouprie2015" class="citation book cs1">Couprie, Geoffroy (2015). "Nom, A Byte oriented, streaming, Zero copy, Parser Combinators Library in Rust". <i>2015 IEEE Security and Privacy Workshops</i>. pp.&nbsp;<span class="nowrap">142–</span>148. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2FSPW.2015.31">10.1109/SPW.2015.31</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4799-9933-0</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:16608844">16608844</a>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEMcNamara202120-154"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEMcNamara202120_154-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFMcNamara2021">McNamara 2021</a>, p.&nbsp;20.</span>
</li>
<li id="cite_note-155"><span class="mw-cite-backlink"><b><a href="#cite_ref-155">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/reference/attributes/codegen.html">"Code generation"</a>. <i>The Rust Reference</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20221009202615/https://doc.rust-lang.org/reference/attributes/codegen.html">Archived</a> from the original on 2022-10-09<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-10-09</span></span>.</cite></span>
</li>
<li id="cite_note-how-fast-is-rust-156"><span class="mw-cite-backlink"><b><a href="#cite_ref-how-fast-is-rust_156-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://doc.rust-lang.org/1.0.0/complement-lang-faq.html#how-fast-is-rust?">"How Fast Is Rust?"</a>. <i>The Rust Programming Language FAQ</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201028102013/https://doc.rust-lang.org/1.0.0/complement-lang-faq.html#how-fast-is-rust?">Archived</a> from the original on 2020-10-28<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-04-11</span></span>.</cite></span>
</li>
<li id="cite_note-157"><span class="mw-cite-backlink"><b><a href="#cite_ref-157">^</a></b></span> <span class="reference-text"><cite id="CITEREFFarshinBarbetteRoozbehMaguire2021" class="citation book cs1">Farshin, Alireza; Barbette, Tom; Roozbeh, Amir; Maguire, Gerald Q. Jr; Kostić, Dejan (2021). "PacketMill: Toward per-Core 100-GBPS networking". <a rel="nofollow" class="external text" href="https://dlnext.acm.org/doi/abs/10.1145/3445814.3446724"><i>Proceedings of the 26th ACM International Conference on Architectural Support for Programming Languages and Operating Systems</i></a>. pp.&nbsp;<span class="nowrap">1–</span>17. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3445814.3446724">10.1145/3445814.3446724</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>9781450383172</bdi>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:231949599">231949599</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220712060927/https://dlnext.acm.org/doi/abs/10.1145/3445814.3446724">Archived</a> from the original on 2022-07-12<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-12</span></span>. <q>... While some compilers (e.g., Rust) support structure reordering [82], C &amp; C++ compilers are forbidden to reorder data structures (e.g., struct or class) [74] ...</q></cite></span>
</li>
<li id="cite_note-FOOTNOTEGjengset202122-158"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEGjengset202122_158-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFGjengset2021">Gjengset 2021</a>, p.&nbsp;22.</span>
</li>
<li id="cite_note-159"><span class="mw-cite-backlink"><b><a href="#cite_ref-159">^</a></b></span> <span class="reference-text"><cite id="CITEREFKeizer2016" class="citation web cs1">Keizer, Gregg (2016-10-31). <a rel="nofollow" class="external text" href="https://www.computerworld.com/article/3137050/mozilla-plans-to-rejuvenate-firefox-in-2017.html">"Mozilla plans to rejuvenate Firefox in 2017"</a>. <i><a href="Computerworld" title="Computerworld">Computerworld</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230513020437/https://www.computerworld.com/article/3137050/mozilla-plans-to-rejuvenate-firefox-in-2017.html">Archived</a> from the original on 2023-05-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-05-13</span></span>.</cite></span>
</li>
<li id="cite_note-160"><span class="mw-cite-backlink"><b><a href="#cite_ref-160">^</a></b></span> <span class="reference-text"><cite id="CITEREFClaburn2023" class="citation web cs1">Claburn, Thomas (2023-01-12). <a rel="nofollow" class="external text" href="https://www.theregister.com/2023/01/12/google_chromium_rust/">"Google polishes Chromium code with a layer of Rust"</a>. <i><a href="The_Register" title="The Register">The Register</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-17</span></span>.</cite></span>
</li>
<li id="cite_note-161"><span class="mw-cite-backlink"><b><a href="#cite_ref-161">^</a></b></span> <span class="reference-text"><cite id="CITEREFJansens2023" class="citation web cs1">Jansens, Dana (2023-01-12). <a rel="nofollow" class="external text" href="https://security.googleblog.com/2023/01/supporting-use-of-rust-in-chromium.html">"Supporting the Use of Rust in the Chromium Project"</a>. <i>Google Online Security Blog</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230113004438/https://security.googleblog.com/2023/01/supporting-use-of-rust-in-chromium.html">Archived</a> from the original on 2023-01-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-12</span></span>.</cite></span>
</li>
<li id="cite_note-162"><span class="mw-cite-backlink"><b><a href="#cite_ref-162">^</a></b></span> <span class="reference-text"><cite id="CITEREFShankland2016" class="citation web cs1">Shankland, Stephen (2016-07-12). <a rel="nofollow" class="external text" href="https://www.cnet.com/tech/services-and-software/firefox-mozilla-gets-overhaul-in-a-bid-to-get-you-interested-again/">"Firefox will get overhaul in bid to get you interested again"</a>. <a href="CNET" title="CNET">CNET</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220714172029/https://www.cnet.com/tech/services-and-software/firefox-mozilla-gets-overhaul-in-a-bid-to-get-you-interested-again/">Archived</a> from the original on 2022-07-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-14</span></span>.</cite></span>
</li>
<li id="cite_note-163"><span class="mw-cite-backlink"><b><a href="#cite_ref-163">^</a></b></span> <span class="reference-text"><cite id="CITEREFSecurity_Research_Team2013" class="citation web cs1">Security Research Team (2013-10-04). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230513161542/https://umbrella.cisco.com/blog/zeromq-helping-us-block-malicious-domains">"ZeroMQ: Helping us Block Malicious Domains in Real Time"</a>. <i>Cisco Umbrella</i>. Archived from <a rel="nofollow" class="external text" href="https://umbrella.cisco.com/blog/zeromq-helping-us-block-malicious-domains">the original</a> on 2023-05-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-05-13</span></span>.</cite></span>
</li>
<li id="cite_note-164"><span class="mw-cite-backlink"><b><a href="#cite_ref-164">^</a></b></span> <span class="reference-text"><cite id="CITEREFCimpanu2019" class="citation web cs1">Cimpanu, Catalin (2019-10-15). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/aws-to-sponsor-rust-project/">"AWS to sponsor Rust project"</a>. <i><a href="ZDNET" title="ZDNET">ZDNET</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-17</span></span>.</cite></span>
</li>
<li id="cite_note-165"><span class="mw-cite-backlink"><b><a href="#cite_ref-165">^</a></b></span> <span class="reference-text"><cite id="CITEREFNichols2018" class="citation web cs1">Nichols, Shaun (2018-06-27). <a rel="nofollow" class="external text" href="https://www.theregister.co.uk/2018/06/27/microsofts_next_cloud_trick_kicking_things_out_of_the_cloud_to_azure_iot_edge/">"Microsoft's next trick? Kicking things out of the cloud to Azure IoT Edge"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190927092433/https://www.theregister.co.uk/2018/06/27/microsofts_next_cloud_trick_kicking_things_out_of_the_cloud_to_azure_iot_edge/">Archived</a> from the original on 2019-09-27<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-09-27</span></span>.</cite></span>
</li>
<li id="cite_note-166"><span class="mw-cite-backlink"><b><a href="#cite_ref-166">^</a></b></span> <span class="reference-text"><cite id="CITEREFTung2020" class="citation web cs1">Tung, Liam (2020-04-30). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/microsoft-why-we-used-programming-language-rust-over-go-for-webassembly-on-kubernetes-app/">"Microsoft: Why we used programming language Rust over Go for WebAssembly on Kubernetes app"</a>. <i><a href="ZDNET" title="ZDNET">ZDNET</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220421043549/https://www.zdnet.com/article/microsoft-why-we-used-programming-language-rust-over-go-for-webassembly-on-kubernetes-app/">Archived</a> from the original on 2022-04-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-04-21</span></span>.</cite></span>
</li>
<li id="cite_note-167"><span class="mw-cite-backlink"><b><a href="#cite_ref-167">^</a></b></span> <span class="reference-text"><cite id="CITEREFClaburn2022" class="citation web cs1">Claburn, Thomas (2022-09-20). <a rel="nofollow" class="external text" href="https://www.theregister.com/2022/09/20/rust_microsoft_c/">"In Rust We Trust: Microsoft Azure CTO shuns C and C++"</a>. <i><a href="The_Register" title="The Register">The Register</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-07</span></span>.</cite></span>
</li>
<li id="cite_note-168"><span class="mw-cite-backlink"><b><a href="#cite_ref-168">^</a></b></span> <span class="reference-text"><cite id="CITEREFSimone2019" class="citation web cs1">Simone, Sergio De (2019-03-10). <a rel="nofollow" class="external text" href="https://www.infoq.com/news/2019/03/rust-npm-performance/">"NPM Adopted Rust to Remove Performance Bottlenecks"</a>. <i>InfoQ</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20231119135434/https://www.infoq.com/news/2019/03/rust-npm-performance/">Archived</a> from the original on 2023-11-19<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-20</span></span>.</cite></span>
</li>
<li id="cite_note-169"><span class="mw-cite-backlink"><b><a href="#cite_ref-169">^</a></b></span> <span class="reference-text"><cite id="CITEREFLyu2020" class="citation book cs1">Lyu, Shing (2020). <a rel="nofollow" class="external text" href="https://doi.org/10.1007/978-1-4842-5599-5_1">"Welcome to the World of Rust"</a>. In Lyu, Shing (ed.). <i>Practical Rust Projects: Building Game, Physical Computing, and Machine Learning Applications</i>. Berkeley, CA: Apress. pp.&nbsp;<span class="nowrap">1–</span>8. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-1-4842-5599-5_1">10.1007/978-1-4842-5599-5_1</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4842-5599-5</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-29</span></span>.</cite></span>
</li>
<li id="cite_note-170"><span class="mw-cite-backlink"><b><a href="#cite_ref-170">^</a></b></span> <span class="reference-text"><cite id="CITEREFLyu2021" class="citation book cs1">Lyu, Shing (2021). <a rel="nofollow" class="external text" href="https://doi.org/10.1007/978-1-4842-6589-5_1">"Rust in the Web World"</a>. In Lyu, Shing (ed.). <i>Practical Rust Web Projects: Building Cloud and Web-Based Applications</i>. Berkeley, CA: Apress. pp.&nbsp;<span class="nowrap">1–</span>7. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1007%2F978-1-4842-6589-5_1">10.1007/978-1-4842-6589-5_1</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-4842-6589-5</bdi><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-29</span></span>.</cite></span>
</li>
<li id="cite_note-UsenixRustForLinux-171"><span class="mw-cite-backlink">^ <a href="#cite_ref-UsenixRustForLinux_171-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-UsenixRustForLinux_171-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-UsenixRustForLinux_171-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFLiGuoYangWang2024" class="citation web cs1">Li, Hongyu; Guo, Liwei; Yang, Yexuan; Wang, Shangguang; Xu, Mengwei (2024-06-30). <a rel="nofollow" class="external text" href="https://www.usenix.org/publications/loginonline/empirical-study-rust-linux-success-dissatisfaction-and-compromise">"An Empirical Study of Rust-for-Linux: The Success, Dissatisfaction, and Compromise"</a>. <i><a href="USENIX" title="USENIX">USENIX</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-11-28</span></span>.</cite></span>
</li>
<li id="cite_note-172"><span class="mw-cite-backlink"><b><a href="#cite_ref-172">^</a></b></span> <span class="reference-text"><cite id="CITEREFCorbet2022" class="citation web cs1">Corbet, Jonathan (2022-10-13). <a rel="nofollow" class="external text" href="https://lwn.net/Articles/910762/">"A first look at Rust in the 6.1 kernel"</a>. <i><a href="LWN.net" title="LWN.net">LWN.net</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20231117141103/https://lwn.net/Articles/910762/">Archived</a> from the original on 2023-11-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-11-11</span></span>.</cite></span>
</li>
<li id="cite_note-173"><span class="mw-cite-backlink"><b><a href="#cite_ref-173">^</a></b></span> <span class="reference-text"><cite id="CITEREFVaughan-Nichols2021" class="citation news cs1">Vaughan-Nichols, Steven (2021-12-07). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/rust-takes-a-major-step-forward-as-linuxs-second-official-language/">"Rust takes a major step forward as Linux's second official language"</a>. <i><a href="ZDNET" title="ZDNET">ZDNET</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-11-27</span></span>.</cite></span>
</li>
<li id="cite_note-174"><span class="mw-cite-backlink"><b><a href="#cite_ref-174">^</a></b></span> <span class="reference-text"><cite id="CITEREFCorbet2022" class="citation web cs1">Corbet, Jonathan (2022-11-17). <a rel="nofollow" class="external text" href="https://lwn.net/Articles/914458/">"Rust in the 6.2 kernel"</a>. <i><a href="LWN.net" title="LWN.net">LWN.net</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-11-28</span></span>.</cite></span>
</li>
<li id="cite_note-175"><span class="mw-cite-backlink"><b><a href="#cite_ref-175">^</a></b></span> <span class="reference-text"><cite id="CITEREFCorbet2024" class="citation web cs1">Corbet, Jonathan (2024-09-24). <a rel="nofollow" class="external text" href="https://lwn.net/Articles/991062/">"Committing to Rust in the kernel"</a>. <i><a href="LWN.net" title="LWN.net">LWN.net</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-11-28</span></span>.</cite></span>
</li>
<li id="cite_note-176"><span class="mw-cite-backlink"><b><a href="#cite_ref-176">^</a></b></span> <span class="reference-text"><cite id="CITEREFAmadeo2021" class="citation web cs1">Amadeo, Ron (2021-04-07). <a rel="nofollow" class="external text" href="https://arstechnica.com/gadgets/2021/04/google-is-now-writing-low-level-android-code-in-rust/">"Google is now writing low-level Android code in Rust"</a>. <i>Ars Technica</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210408001446/https://arstechnica.com/gadgets/2021/04/google-is-now-writing-low-level-android-code-in-rust/">Archived</a> from the original on 2021-04-08<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-04-21</span></span>.</cite></span>
</li>
<li id="cite_note-177"><span class="mw-cite-backlink"><b><a href="#cite_ref-177">^</a></b></span> <span class="reference-text"><cite id="CITEREFDarkcrizt2021" class="citation web cs1">Darkcrizt (2021-04-02). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210825165930/https://blog.desdelinux.net/en/google-develops-a-new-bluetooth-stack-for-android-written-in-rust/">"Google Develops New Bluetooth Stack for Android, Written in Rust"</a>. <i>Desde Linux</i>. Archived from <a rel="nofollow" class="external text" href="https://blog.desdelinux.net/en/google-develops-a-new-bluetooth-stack-for-android-written-in-rust/">the original</a> on 2021-08-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-08-31</span></span>.</cite></span>
</li>
<li id="cite_note-178"><span class="mw-cite-backlink"><b><a href="#cite_ref-178">^</a></b></span> <span class="reference-text"><cite id="CITEREFClaburn2023" class="citation web cs1">Claburn, Thomas (2023-04-27). <a rel="nofollow" class="external text" href="https://www.theregister.com/2023/04/27/microsoft_windows_rust/">"Microsoft is rewriting core Windows libraries in Rust"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230513082735/https://www.theregister.com/2023/04/27/microsoft_windows_rust/">Archived</a> from the original on 2023-05-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-05-13</span></span>.</cite></span>
</li>
<li id="cite_note-179"><span class="mw-cite-backlink"><b><a href="#cite_ref-179">^</a></b></span> <span class="reference-text"><cite id="CITEREFProven2023" class="citation web cs1">Proven, Liam (2023-12-01). <a rel="nofollow" class="external text" href="https://www.theregister.com/2023/12/01/9front_humanbiologics/">"Small but mighty, 9Front's 'Humanbiologics' is here for the truly curious"</a>. <i><a href="The_Register" title="The Register">The Register</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-07</span></span>.</cite></span>
</li>
<li id="cite_note-180"><span class="mw-cite-backlink"><b><a href="#cite_ref-180">^</a></b></span> <span class="reference-text"><cite id="CITEREFYegulalp2016" class="citation news cs1">Yegulalp, Serdar (2016-03-21). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20160321192838/http://www.infoworld.com/article/3046100/open-source-tools/rusts-redox-os-could-show-linux-a-few-new-tricks.html">"Rust's Redox OS could show Linux a few new tricks"</a>. <i><a href="InfoWorld" title="InfoWorld">InfoWorld</a></i>. Archived from <a rel="nofollow" class="external text" href="http://www.infoworld.com/article/3046100/open-source-tools/rusts-redox-os-could-show-linux-a-few-new-tricks.html">the original</a> on 2016-03-21<span class="reference-accessdate">. Retrieved <span class="nowrap">2016-03-21</span></span>.</cite></span>
</li>
<li id="cite_note-181"><span class="mw-cite-backlink"><b><a href="#cite_ref-181">^</a></b></span> <span class="reference-text"><cite id="CITEREFAnderson2021" class="citation web cs1">Anderson, Tim (2021-01-14). <a rel="nofollow" class="external text" href="https://www.theregister.com/2021/01/14/rust_os_theseus/">"Another Rust-y OS: Theseus joins Redox in pursuit of safer, more resilient systems"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220714112619/https://www.theregister.com/2021/01/14/rust_os_theseus/">Archived</a> from the original on 2022-07-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-14</span></span>.</cite></span>
</li>
<li id="cite_note-182"><span class="mw-cite-backlink"><b><a href="#cite_ref-182">^</a></b></span> <span class="reference-text"><cite id="CITEREFBoosLiyanageIjazZhong2020" class="citation book cs1">Boos, Kevin; Liyanage, Namitha; Ijaz, Ramla; Zhong, Lin (2020). <a rel="nofollow" class="external text" href="https://www.usenix.org/conference/osdi20/presentation/boos"><i>Theseus: an Experiment in Operating System Structure and State Management</i></a>. pp.&nbsp;<span class="nowrap">1–</span>19. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-1-939133-19-9</bdi>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20230513164135/https://www.usenix.org/conference/osdi20/presentation/boos">Archived</a> from the original on 2023-05-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2023-05-13</span></span>.</cite></span>
</li>
<li id="cite_note-rustmag-1-183"><span class="mw-cite-backlink"><b><a href="#cite_ref-rustmag-1_183-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFZhang2023" class="citation web cs1">Zhang, HanDong (2023-01-31). <a rel="nofollow" class="external text" href="https://rustmagazine.org/issue-1/2022-review-the-adoption-of-rust-in-business/">"2022 Review | The adoption of Rust in Business"</a>. <i>Rust Magazine</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2023-02-07</span></span>.</cite></span>
</li>
<li id="cite_note-184"><span class="mw-cite-backlink"><b><a href="#cite_ref-184">^</a></b></span> <span class="reference-text"><cite id="CITEREFSei2018" class="citation web cs1">Sei, Mark (2018-10-10). <a rel="nofollow" class="external text" href="https://www.marksei.com/fedora-29-new-features-startis/">"Fedora 29 new features: Startis now officially in Fedora"</a>. <i>Marksei, Weekly sysadmin pills</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190413075055/https://www.marksei.com/fedora-29-new-features-startis/">Archived</a> from the original on 2019-04-13<span class="reference-accessdate">. Retrieved <span class="nowrap">2019-05-13</span></span>.</cite></span>
</li>
<li id="cite_note-185"><span class="mw-cite-backlink"><b><a href="#cite_ref-185">^</a></b></span> <span class="reference-text"><cite id="CITEREFProven2022" class="citation web cs1">Proven, Liam (2022-07-12). <a rel="nofollow" class="external text" href="https://www.theregister.com/2022/07/12/oracle_linux_9/">"Oracle Linux 9 released, with some interesting additions"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220714073400/https://www.theregister.com/2022/07/12/oracle_linux_9/">Archived</a> from the original on 2022-07-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-14</span></span>.</cite></span>
</li>
<li id="cite_note-186"><span class="mw-cite-backlink"><b><a href="#cite_ref-186">^</a></b></span> <span class="reference-text"><cite id="CITEREFProven2023" class="citation web cs1">Proven, Liam (2023-02-02). <a rel="nofollow" class="external text" href="https://www.theregister.com/2023/02/02/system76_cosmic_xfce_updates/">"System76 teases features coming in homegrown Rust-based desktop COSMIC"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20240717145511/https://www.theregister.com/2023/02/02/system76_cosmic_xfce_updates/">Archived</a> from the original on 2024-07-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-17</span></span>.</cite></span>
</li>
<li id="cite_note-187"><span class="mw-cite-backlink"><b><a href="#cite_ref-187">^</a></b></span> <span class="reference-text"><cite id="CITEREFHu2020" class="citation web cs1">Hu, Vivian (2020-06-12). <a rel="nofollow" class="external text" href="https://www.infoq.com/news/2020/06/deno-1-ready-production/">"Deno Is Ready for Production"</a>. <i>InfoQ</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200701105007/https://www.infoq.com/news/2020/06/deno-1-ready-production/">Archived</a> from the original on 2020-07-01<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-14</span></span>.</cite></span>
</li>
<li id="cite_note-188"><span class="mw-cite-backlink"><b><a href="#cite_ref-188">^</a></b></span> <span class="reference-text"><cite id="CITEREFAbrams2021" class="citation web cs1">Abrams, Lawrence (2021-02-06). <a rel="nofollow" class="external text" href="https://www.bleepingcomputer.com/news/software/this-flash-player-emulator-lets-you-securely-play-your-old-games/">"This Flash Player emulator lets you securely play your old games"</a>. <i><a href="Bleeping_Computer" title="Bleeping Computer">Bleeping Computer</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20211225124131/https://www.bleepingcomputer.com/news/software/this-flash-player-emulator-lets-you-securely-play-your-old-games/">Archived</a> from the original on 2021-12-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-12-25</span></span>.</cite></span>
</li>
<li id="cite_note-189"><span class="mw-cite-backlink"><b><a href="#cite_ref-189">^</a></b></span> <span class="reference-text"><cite id="CITEREFKharif2020" class="citation web cs1">Kharif, Olga (2020-10-17). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.bloomberg.com/news/articles/2020-10-17/ethereum-blockchain-killer-goes-by-unassuming-name-of-polkadot">"Ethereum Blockchain Killer Goes By Unassuming Name of Polkadot"</a></span>. <i><a href="Bloomberg_News" title="Bloomberg News">Bloomberg News</a></i>. <a href="Bloomberg_L.P." title="Bloomberg L.P.">Bloomberg L.P.</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201017192915/https://www.bloomberg.com/news/articles/2020-10-17/ethereum-blockchain-killer-goes-by-unassuming-name-of-polkadot">Archived</a> from the original on 2020-10-17<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-07-14</span></span>.</cite></span>
</li>
<li id="cite_note-SO-2025-survey-190"><span class="mw-cite-backlink">^ <a href="#cite_ref-SO-2025-survey_190-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-SO-2025-survey_190-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-SO-2025-survey_190-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://survey.stackoverflow.co/2025/technology">"2025 Stack Overflow Developer Survey – Technology"</a>. <i><a href="Stack_Overflow" title="Stack Overflow">Stack Overflow</a></i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-08-09</span></span>.</cite></span>
</li>
<li id="cite_note-191"><span class="mw-cite-backlink"><b><a href="#cite_ref-191">^</a></b></span> <span class="reference-text"><cite id="CITEREFClaburn2022" class="citation web cs1">Claburn, Thomas (2022-06-23). <a rel="nofollow" class="external text" href="https://www.theregister.com/2022/06/23/linus_torvalds_rust_linux_kernel/">"Linus Torvalds says Rust is coming to the Linux kernel"</a>. <i><a href="The_Register" title="The Register">The Register</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220728221531/https://www.theregister.com/2022/06/23/linus_torvalds_rust_linux_kernel/">Archived</a> from the original on 2022-07-28<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-15</span></span>.</cite></span>
</li>
<li id="cite_note-193"><span class="mw-cite-backlink"><b><a href="#cite_ref-193">^</a></b></span> <span class="reference-text"><cite id="CITEREFWallach" class="citation web cs1">Wallach, Dan. <a rel="nofollow" class="external text" href="https://www.darpa.mil/research/programs/translating-all-c-to-rust">"TRACTOR: Translating All C to Rust"</a>. <a href="DARPA" title="DARPA">DARPA</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-08-03</span></span>.</cite></span>
</li>
<li id="cite_note-194"><span class="mw-cite-backlink"><b><a href="#cite_ref-194">^</a></b></span> <span class="reference-text"><cite id="CITEREFJungJourdanKrebbersDreyer2017" class="citation journal cs1">Jung, Ralf; Jourdan, Jacques-Henri; Krebbers, Robbert; Dreyer, Derek (2017-12-27). <a rel="nofollow" class="external text" href="https://dl.acm.org/doi/10.1145/3158154">"RustBelt: securing the foundations of the Rust programming language"</a>. <i>Proceedings of the ACM on Programming Languages</i>. <b>2</b> (POPL): <span class="nowrap">1–</span>34. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3158154">10.1145/3158154</a>. <a href="Hdl_(identifier)" class="mw-redirect" title="Hdl (identifier)">hdl</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://hdl.handle.net/21.11116%2F0000-0003-34C6-3">21.11116/0000-0003-34C6-3</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/2475-1421">2475-1421</a>.</cite></span>
</li>
<li id="cite_note-195"><span class="mw-cite-backlink"><b><a href="#cite_ref-195">^</a></b></span> <span class="reference-text"><cite id="CITEREFPopescuXuApostolakisAugust2021" class="citation journal cs1">Popescu, Natalie; Xu, Ziyang; Apostolakis, Sotiris; August, David I.; Levy, Amit (2021-10-20). <a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3485480">"Safer at any speed: automatic context-aware safety enhancement for Rust"</a>. <i>Proceedings of the ACM on Programming Languages</i>. <b>5</b> (OOPSLA): <span class="nowrap">1–</span>23. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://doi.org/10.1145%2F3485480">10.1145/3485480</a></span>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/2475-1421">2475-1421</a>.</cite></span>
</li>
<li id="cite_note-ResearchSoftware1-196"><span class="mw-cite-backlink"><b><a href="#cite_ref-ResearchSoftware1_196-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFBlanco-CuaresmaBolmont2017" class="citation journal cs1">Blanco-Cuaresma, Sergi; Bolmont, Emeline (2017-05-30). <a rel="nofollow" class="external text" href="https://www.cambridge.org/core/journals/proceedings-of-the-international-astronomical-union/article/what-can-the-programming-language-rust-do-for-astrophysics/B51B6DF72B7641F2352C05A502F3D881">"What can the programming language Rust do for astrophysics?"</a>. <i><a href="Proceedings_of_the_International_Astronomical_Union" class="mw-redirect" title="Proceedings of the International Astronomical Union">Proceedings of the International Astronomical Union</a></i>. <b>12</b> (S325): <span class="nowrap">341–</span>344. <a href="ArXiv_(identifier)" class="mw-redirect" title="ArXiv (identifier)">arXiv</a>:<span class="id-lock-free" title="Freely accessible"><a rel="nofollow" class="external text" href="https://arxiv.org/abs/1702.02951">1702.02951</a></span>. <a href="Bibcode_(identifier)" class="mw-redirect" title="Bibcode (identifier)">Bibcode</a>:<a rel="nofollow" class="external text" href="https://ui.adsabs.harvard.edu/abs/2017IAUS..325..341B">2017IAUS..325..341B</a>. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1017%2FS1743921316013168">10.1017/S1743921316013168</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a>&nbsp;<a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1743-9213">1743-9213</a>. <a href="S2CID_(identifier)" class="mw-redirect" title="S2CID (identifier)">S2CID</a>&nbsp;<a rel="nofollow" class="external text" href="https://api.semanticscholar.org/CorpusID:7857871">7857871</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220625140128/https://www.cambridge.org/core/journals/proceedings-of-the-international-astronomical-union/article/what-can-the-programming-language-rust-do-for-astrophysics/B51B6DF72B7641F2352C05A502F3D881">Archived</a> from the original on 2022-06-25<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-06-25</span></span>.</cite></span>
</li>
<li id="cite_note-FOOTNOTEKlabnikNichols20194-197"><span class="mw-cite-backlink"><b><a href="#cite_ref-FOOTNOTEKlabnikNichols20194_197-0">^</a></b></span> <span class="reference-text"><a href="#CITEREFKlabnikNichols2019">Klabnik &amp; Nichols 2019</a>, p.&nbsp;4.</span>
</li>
<li id="cite_note-198"><span class="mw-cite-backlink"><b><a href="#cite_ref-198">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.rust-lang.org/learn/get-started#ferris">"Getting Started"</a>. <i>The Rust Programming Language</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20201101145703/https://www.rust-lang.org/learn/get-started#ferris">Archived</a> from the original on 2020-11-01<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-10-11</span></span>.</cite></span>
</li>
<li id="cite_note-StateOfRustSurvey2024-199"><span class="mw-cite-backlink"><b><a href="#cite_ref-StateOfRustSurvey2024_199-0">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.rust-lang.org/2025/02/13/2024-State-Of-Rust-Survey-results.html">"2024 State of Rust Survey Results"</a>. <i>Rust-lang.org Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-04-06</span></span>.</cite></span>
</li>
<li id="cite_note-200"><span class="mw-cite-backlink"><b><a href="#cite_ref-200">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://octoverse.github.com/2022/top-programming-languages">"The top programming languages"</a>. <i>The State of the Octoverse</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-25</span></span>.</cite></span>
</li>
<li id="cite_note-201"><span class="mw-cite-backlink"><b><a href="#cite_ref-201">^</a></b></span> <span class="reference-text"><cite id="CITEREFStaff2024" class="citation web cs1">Staff, GitHub (2024-10-29). <a rel="nofollow" class="external text" href="https://github.blog/news-insights/octoverse/octoverse-2024/">"Octoverse: AI leads Python to top language as the number of global developers surges"</a>. <i>The GitHub Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2025-06-25</span></span>.</cite></span>
</li>
<li id="cite_note-202"><span class="mw-cite-backlink"><b><a href="#cite_ref-202">^</a></b></span> <span class="reference-text"><cite id="CITEREFTung2021" class="citation web cs1">Tung, Liam (2021-02-08). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/the-rust-programming-language-just-took-a-huge-step-forwards/">"The Rust programming language just took a huge step forwards"</a>. <i><a href="ZDNET" title="ZDNET">ZDNET</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220714105527/https://www.zdnet.com/article/the-rust-programming-language-just-took-a-huge-step-forwards/">Archived</a> from the original on 2022-07-14<span class="reference-accessdate">. Retrieved <span class="nowrap">2022-07-14</span></span>.</cite></span>
</li>
<li id="cite_note-203"><span class="mw-cite-backlink"><b><a href="#cite_ref-203">^</a></b></span> <span class="reference-text"><cite id="CITEREFKrill2021" class="citation news cs1">Krill, Paul (2021-02-09). <a rel="nofollow" class="external text" href="https://www.infoworld.com/article/3606774/rust-language-moves-to-independent-foundation.html">"Rust language moves to independent foundation"</a>. <i><a href="InfoWorld" title="InfoWorld">InfoWorld</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210410161528/https://www.infoworld.com/article/3606774/rust-language-moves-to-independent-foundation.html">Archived</a> from the original on 2021-04-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-04-10</span></span>.</cite></span>
</li>
<li id="cite_note-204"><span class="mw-cite-backlink"><b><a href="#cite_ref-204">^</a></b></span> <span class="reference-text"><cite id="CITEREFVaughan-Nichols2021" class="citation news cs1">Vaughan-Nichols, Steven J. (2021-04-09). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/awss-shane-miller-to-head-the-newly-created-rust-foundation/">"AWS's Shane Miller to head the newly created Rust Foundation"</a>. <i><a href="ZDNET" title="ZDNET">ZDNET</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210410031305/https://www.zdnet.com/article/awss-shane-miller-to-head-the-newly-created-rust-foundation/">Archived</a> from the original on 2021-04-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-04-10</span></span>.</cite></span>
</li>
<li id="cite_note-205"><span class="mw-cite-backlink"><b><a href="#cite_ref-205">^</a></b></span> <span class="reference-text"><cite id="CITEREFVaughan-Nichols2021" class="citation news cs1">Vaughan-Nichols, Steven J. (2021-11-17). <a rel="nofollow" class="external text" href="https://www.zdnet.com/article/rust-foundation-appoints-rebecca-rumbul-as-executive-director/">"Rust Foundation appoints Rebecca Rumbul as executive director"</a>. <i><a href="ZDNET" title="ZDNET">ZDNET</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20211118062346/https://www.zdnet.com/article/rust-foundation-appoints-rebecca-rumbul-as-executive-director/">Archived</a> from the original on 2021-11-18<span class="reference-accessdate">. Retrieved <span class="nowrap">2021-11-18</span></span>.</cite></span>
</li>
<li id="cite_note-206"><span class="mw-cite-backlink"><b><a href="#cite_ref-206">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.rust-lang.org/governance">"Governance"</a>. <i>The Rust Programming Language</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20220510225505/https://www.rust-lang.org/governance">Archived</a> from the original on 2022-05-10<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-07-18</span></span>.</cite></span>
</li>
<li id="cite_note-207"><span class="mw-cite-backlink"><b><a href="#cite_ref-207">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://blog.rust-lang.org/2023/06/20/introducing-leadership-council.html">"Introducing the Rust Leadership Council"</a>. <i>Rust Blog</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-01-12</span></span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1290876196">
/* start https://en.wikipedia.org/ */


.mw-parser-output .side-box{margin:4px 0;box-sizing:border-box;border:1px solid #aaa;font-size:88%;line-height:1.25em;background-color:var(--background-color-interactive-subtle,#f8f9fa);display:flow-root}.mw-parser-output .infobox .side-box{font-size:100%}.mw-parser-output .side-box-abovebelow,.mw-parser-output .side-box-text{padding:0.25em 0.9em}.mw-parser-output .side-box-image{padding:2px 0 2px 0.9em;text-align:center}.mw-parser-output .side-box-imageright{padding:2px 0.9em 2px 0;text-align:center}@media(min-width:500px){.mw-parser-output .side-box-flex{display:flex;align-items:center}.mw-parser-output .side-box-text{flex:1;min-width:0}}@media(min-width:720px){.mw-parser-output .side-box{width:238px}.mw-parser-output .side-box-right{clear:right;float:right;margin-left:1em}.mw-parser-output .side-box-left{margin-right:1em}}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1250146164">
/* start https://en.wikipedia.org/ */


.mw-parser-output .sister-box .side-box-abovebelow{padding:0.75em 0;text-align:center}.mw-parser-output .sister-box .side-box-abovebelow>b{display:block}.mw-parser-output .sister-box .side-box-text>ul{border-top:1px solid #aaa;padding:0.75em 0;width:217px;margin:0 auto}.mw-parser-output .sister-box .side-box-text>ul>li{min-height:31px}.mw-parser-output .sister-logo{display:inline-block;width:31px;line-height:31px;vertical-align:middle;text-align:center}.mw-parser-output .sister-link{display:inline-block;margin-left:4px;width:182px;vertical-align:middle}@media print{body.ns-0 .mw-parser-output .sistersitebox{display:none!important}}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-v2.svg"]{background-color:white}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sistersitebox img[src*="Wiktionary-logo-v2.svg"]{background-color:white}}


/* end https://en.wikipedia.org/ */
</style>
<ul><li><span class="official-website"><span class="url"><a rel="nofollow" class="external text" href="https://www.rust-lang.org/">Official website</a></span></span> </li>
<li><a rel="nofollow" class="external text" href="https://github.com/rust-lang/rust">Source code</a> on <a href="GitHub" title="GitHub">GitHub</a></li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Programming_languages625" style="padding:3px"><table class="nowraplinks hlist mw-collapsible expanded navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Programming_languages625" style="font-size:114%;margin:0 4em"><a href="Programming_language" title="Programming language">Programming languages</a></div></th></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><a href="Comparison_of_programming_languages" title="Comparison of programming languages">Comparison</a></li>
<li><a href="Timeline_of_programming_languages" title="Timeline of programming languages">Timeline</a></li>
<li><a href="History_of_programming_languages" title="History of programming languages">History</a></li></ul>
</div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ada_(programming_language)" title="Ada (programming language)">Ada</a></li>
<li><a href="ALGOL" title="ALGOL">ALGOL</a>
<ul><li><a href="Simula" title="Simula">Simula</a></li></ul></li>
<li><a href="APL_(programming_language)" title="APL (programming language)">APL</a></li>
<li><a href="Assembly_language" title="Assembly language">Assembly</a></li>
<li><a href="BASIC" title="BASIC">BASIC</a>
<ul><li><a href="Visual_Basic" title="Visual Basic">Visual Basic</a>
<ul><li><a href="Visual_Basic_(classic)" title="Visual Basic (classic)">classic</a></li>
<li><a href="Visual_Basic_(.NET)" title="Visual Basic (.NET)">.NET</a></li></ul></li></ul></li>
<li><a href="C_(programming_language)" title="C (programming language)">C</a></li>
<li><a href="C%2B%2B" title="C++">C++</a></li>
<li><a href="C_Sharp_(programming_language)" title="C Sharp (programming language)">C#</a></li>
<li><a href="COBOL" title="COBOL">COBOL</a></li>
<li><a href="Erlang_(programming_language)" title="Erlang (programming language)">Erlang</a>
<ul><li><a href="Elixir_(programming_language)" title="Elixir (programming language)">Elixir</a></li></ul></li>
<li><a href="Forth_(programming_language)" title="Forth (programming language)">Forth</a></li>
<li><a href="Fortran" title="Fortran">Fortran</a></li>
<li><a href="Go_(programming_language)" title="Go (programming language)">Go</a></li>
<li><a href="Haskell" title="Haskell">Haskell</a></li>
<li><a href="Java_(programming_language)" title="Java (programming language)">Java</a></li>
<li><a href="JavaScript" title="JavaScript">JavaScript</a></li>
<li><a href="Julia_(programming_language)" title="Julia (programming language)">Julia</a></li>
<li><a href="Kotlin_(programming_language)" title="Kotlin (programming language)">Kotlin</a></li>
<li><a href="Lisp_(programming_language)" title="Lisp (programming language)">Lisp</a></li>
<li><a href="Lua" title="Lua">Lua</a></li>
<li><a href="MATLAB" title="MATLAB">MATLAB</a></li>
<li><a href="ML_(programming_language)" title="ML (programming language)">ML</a>
<ul><li><a href="Caml" title="Caml">Caml </a>
<ul><li><a href="OCaml" title="OCaml">OCaml</a></li></ul></li></ul></li>
<li><a href="Pascal_(programming_language)" title="Pascal (programming language)">Pascal</a>
<ul><li><a href="Object_Pascal" title="Object Pascal">Object Pascal</a></li></ul></li>
<li><a href="Perl" title="Perl">Perl </a>
<ul><li><a href="Raku_(programming_language)" title="Raku (programming language)">Raku</a></li></ul></li>
<li><a href="PHP" title="PHP">PHP</a></li>
<li><a href="Prolog" title="Prolog">Prolog</a></li>
<li><a href="Python_(programming_language)" title="Python (programming language)">Python</a></li>
<li><a href="R_(programming_language)" title="R (programming language)">R</a></li>
<li><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></li>

<li><a href="SAS_language" title="SAS language">SAS</a></li>
<li><a href="SQL" title="SQL">SQL</a></li>
<li><a href="Scratch_(programming_language)" title="Scratch (programming language)">Scratch</a></li>
<li><a href="Shell_script" title="Shell script">Shell</a></li>
<li><a href="Smalltalk" title="Smalltalk">Smalltalk</a></li>
<li><a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a></li>
<li><i><a href="List_of_programming_languages" title="List of programming languages">more...</a></i></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><span class="noviewer" typeof="mw:File"><span title="List-Class article"></span></span> <b>Lists:</b> <a href="List_of_programming_languages" title="List of programming languages">Alphabetical</a></li>
<li><a href="List_of_programming_languages_by_type" title="List of programming languages by type">Categorical</a></li>
<li><a href="Generational_list_of_programming_languages" title="Generational list of programming languages">Generational</a></li>
<li><a href="Non-English-based_programming_languages" title="Non-English-based programming languages">Non-English-based</a></li>
<li><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox" aria-labelledby="Mozilla52" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Mozilla52" style="font-size:114%;margin:0 4em"><a href="Mozilla" title="Mozilla">Mozilla</a></div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Projects52" style="font-size:114%;margin:0 4em">Projects</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Mozilla<br>Labs</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bugzilla" title="Bugzilla">Bugzilla</a></li>
<li><a href="ChatZilla" title="ChatZilla">ChatZilla</a></li>
<li><i><a href="Jetpack_(Firefox_project)" title="Jetpack (Firefox project)">Jetpack</a></i></li>
<li><i><a href="Lightning_(software)" title="Lightning (software)">Lightning</a></i></li>
<li><i><a href="Mozilla_Persona" title="Mozilla Persona">Persona</a></i></li>
<li><i><a href="Mozilla_Prism" title="Mozilla Prism">Prism</a></i></li>
<li><i><a href="Mozilla_Raindrop" title="Mozilla Raindrop">Raindrop</a></i></li>
<li><i><a href="Mozilla_Skywriter" title="Mozilla Skywriter">Skywriter</a></i></li>
<li><i><a href="Mozilla_Sunbird" title="Mozilla Sunbird">Sunbird</a></i></li>
<li><a href="PDF.js" title="PDF.js">PDF.js</a></li>
<li><i><a href="Ubiquity_(Firefox)" title="Ubiquity (Firefox)">Ubiquity</a></i></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Mozilla<br>Research</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Alliance_for_Open_Media" title="Alliance for Open Media">Open Media</a></li>

<li><a href="Shumway_(software)" title="Shumway (software)">Shumway</a></li>
<li><a href="WebAssembly" title="WebAssembly">WebAssembly</a></li>
<li><a href="WebXR" title="WebXR">WebXR</a></li>
<li><i><a href="Asm.js" title="Asm.js">asm.js</a></i></li>
<li><i><a href="Daala" title="Daala">Daala</a></i></li>
<li><i><a href="Firefox_OS" title="Firefox OS">Firefox OS</a></i></li>
<li><i><a href="OpenFlint" title="OpenFlint">OpenFlint</a></i></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Mozilla<br>Foundation</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mozilla_Location_Service" title="Mozilla Location Service">Mozilla Location Service</a></li>
<li><a href="SeaMonkey" title="SeaMonkey">SeaMonkey</a></li>
<li><a href="Mozilla_Monitor" title="Mozilla Monitor">Mozilla Monitor</a></li>
<li><a href="Mozilla_Thunderbird" title="Mozilla Thunderbird">Thunderbird</a></li>
<li><a href="Mozilla_VPN" title="Mozilla VPN">Mozilla VPN</a></li>
<li><a href="List_of_Mozilla_products" title="List of Mozilla products">List of products</a></li></ul>
</div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Firefox</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Firefox" title="Firefox">Firefox Browser</a>
<ul><li><a href="Firefox_early_version_history" title="Firefox early version history">Early version history</a></li>
<li><i><a href="Firefox_2" title="Firefox 2">2</a></i></li>
<li><i><a href="Firefox_3.0" title="Firefox 3.0">3</a></i></li>
<li><i><a href="Firefox_3.5" title="Firefox 3.5">3.5</a></i></li>
<li><i><a href="Firefox_3.6" title="Firefox 3.6">3.6</a></i></li>
<li><i><a href="Firefox_4" title="Firefox 4">4</a></i></li>
<li><a href="Firefox_version_history" title="Firefox version history">Version history</a></li>
<li><a href="Firefox_for_Android" title="Firefox for Android">for Android</a></li>
<li><a href="Firefox_Focus" title="Firefox Focus">Focus</a></li></ul></li>
<li><a href="Firefox_Sync" title="Firefox Sync">Sync</a></li>
<li><a href="Pocket_(service)" title="Pocket (service)">Pocket</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Origins</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><i><a href="Mozilla_Application_Suite" title="Mozilla Application Suite">Mozilla Application Suite</a></i></li>
<li><i><a href="Netscape_Navigator" title="Netscape Navigator">Netscape Navigator</a></i></li>
<li><i><a href="Netscape_Communicator" title="Netscape Communicator">Netscape Communicator</a></i></li>
<li><i><a href="Netscape" title="Netscape">Netscape Communications</a></i></li>
<li><i><a href="Beonex_Communicator" title="Beonex Communicator">Beonex Communicator</a></i></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Frameworks</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Add-on_(Mozilla)" title="Add-on (Mozilla)">Add-on</a></li>
<li><a href="Gecko_(software)" title="Gecko (software)">Gecko</a></li>
<li><a href="Mozilla_application_framework" title="Mozilla application framework">Necko</a></li>
<li><a href="NPAPI" title="NPAPI">NPAPI</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Components</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mozilla_Composer" title="Mozilla Composer">Composer</a></li>
<li><a href="Netscape_Portable_Runtime" title="Netscape Portable Runtime">NSPR</a></li>
<li><a href="Network_Security_Services" title="Network Security Services">NSS</a></li>
<li><a href="Rhino_(JavaScript_engine)" title="Rhino (JavaScript engine)">Rhino</a></li>
<li><a href="SpiderMonkey" title="SpiderMonkey">SpiderMonkey</a></li>
<li><i><a href="Tamarin_(software)" title="Tamarin (software)">Tamarin</a></i></li>
<li>Features</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Typefaces</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Fira_(typeface)" title="Fira (typeface)">Fira</a></li>
<li><a href="Zilla_Slab" title="Zilla Slab">Zilla Slab</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Discontinued</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><i><a href="Mozilla_Calendar_Project" title="Mozilla Calendar Project">Calendar Project</a></i></li>
<li><i><a href="Camino_(web_browser)" title="Camino (web browser)">Camino</a></i></li>
<li><i><a href="Firefox_Lockwise" title="Firefox Lockwise">Firefox Lockwise</a></i></li>
<li><i><a href="Firefox_Send" title="Firefox Send">Firefox Send</a></i></li>
<li><i><a href="Minimo" title="Minimo">Minimo</a></i></li>
<li><u><a href="XUL" title="XUL">XUL</a></u>
<ul><li><u><a href="XBL" title="XBL">XBL</a></u></li>
<li><u><a href="XPCOM" title="XPCOM">XPCOM</a></u></li>
<li><u><a href="XPInstall" title="XPInstall">XPInstall</a></u></li>
<li><u><a href="XULRunner" title="XULRunner">XULRunner</a></u></li></ul></li></ul>
</div></td></tr></tbody></table><div>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Forks</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Basilisk_(web_browser)" title="Basilisk (web browser)">Basilisk</a></li>
<li><i><a href="Classilla" title="Classilla">Classilla</a></i></li>
<li><i><a href="Flock_(web_browser)" title="Flock (web browser)">Flock</a></i></li>
<li><a href="Floorp" title="Floorp">Floorp</a></li>
<li><a href="Goanna_(software)" title="Goanna (software)">Goanna</a></li>
<li><a href="GNU_IceCat" title="GNU IceCat">IceCat</a></li>
<li><a href="LibreWolf" title="LibreWolf">LibreWolf</a></li>
<li><i><a href="Miro_(video_software)" title="Miro (video software)">Miro</a></i></li>
<li><i><a href="Netscape_Navigator_9" title="Netscape Navigator 9">Netscape 9</a></i></li>
<li><a href="Pale_Moon" title="Pale Moon">Pale Moon</a></li>
<li><a href="Firefox_Portable" title="Firefox Portable">Portable Edition</a></li>
<li><i><a href="Swiftfox" title="Swiftfox">Swiftfox</a></i></li>
<li><i><a href="Swiftweasel" title="Swiftweasel">Swiftweasel</a></i></li>
<li><a href="Waterfox" title="Waterfox">Waterfox</a></li>
<li><i><a href="XB_Browser" title="XB Browser">xB Browser</a></i></li>
<li><a href="Zen_Browser" title="Zen Browser">Zen Browser</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>Discontinued projects are in <i>italics</i>. Some projects abandoned by Mozilla that are still maintained by third parties are in <u>underline</u>.</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Organization52" style="font-size:114%;margin:0 4em">Organization</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th id="Foundation35" scope="row" class="navbox-group" style="width:1%">Foundation</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mozilla_Foundation" title="Mozilla Foundation">Mozilla Foundation</a></li>
<li><a href="Mozilla_Corporation" title="Mozilla Corporation">Mozilla Corporation</a></li>
<li><a href="Mozilla_Messaging" title="Mozilla Messaging">Mozilla Messaging</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Official affiliates</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mozilla_China" title="Mozilla China">Mozilla China</a></li>
<li><a href="Mozilla_Europe" title="Mozilla Europe">Mozilla Europe</a> (defunct)</li>
<li><a href="Mozilla_Japan" title="Mozilla Japan">Mozilla Japan</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">People</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mitchell_Baker" title="Mitchell Baker">Mitchell Baker</a></li>
<li><a href="David_Baron_(computer_scientist)" title="David Baron (computer scientist)">David Baron</a></li>
<li><a href="Tantek_%C3%87elik" title="Tantek Çelik">Tantek Çelik</a></li>
<li><a href="Laura_Chambers" title="Laura Chambers">Laura Chambers</a></li>
<li><a href="Brendan_Eich" title="Brendan Eich">Brendan Eich</a></li>
<li><a href="John_Hammink" title="John Hammink">John Hammink</a></li>
<li><a href="Johnny_Stenb%C3%A4ck" title="Johnny Stenbäck">Johnny Stenbäck</a></li>
<li><a href="Doug_Turner_(Mozilla)" title="Doug Turner (Mozilla)">Doug Turner</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Community52" style="font-size:114%;margin:0 4em">Community</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mozdev.org" title="Mozdev.org">mozdev.org</a></li>
<li><a href="MDN_Web_Docs" title="MDN Web Docs">MDN Web Docs</a></li>
<li><a href="MozillaZine" title="MozillaZine">MozillaZine</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks mw-collapsible mw-collapsed navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Other_topics52" style="font-size:114%;margin:0 4em">Other topics</div></th></tr><tr><td colspan="2" class="navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Mozilla_Manifesto" title="Mozilla Manifesto">Mozilla Manifesto</a></li>
<li><i><a href="The_Book_of_Mozilla" title="The Book of Mozilla">The Book of Mozilla</a></i></li>
<li><i><a href="Code_Rush" title="Code Rush">Code Rush</a></i></li>
<li><a href="Mozilla_Public_License" title="Mozilla Public License">Mozilla Public License</a></li>
<li><a href="Mozilla_(mascot)" title="Mozilla (mascot)">Mascot</a></li>
<li><a href="Debian%E2%80%93Mozilla_trademark_dispute" title="Debian–Mozilla trademark dispute">Debian–Mozilla trademark dispute</a></li>
<li><a href="Common_Voice" title="Common Voice">Common Voice</a></li>
<li><i><a href="Mozilla_Corp._v._FCC" title="Mozilla Corp. v. FCC">Mozilla Corp. v. FCC</a></i> (2019)</li></ul>
</div></td></tr></tbody></table><div></div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q575650#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata1079" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&amp;#124;text-top&amp;#124;10px&amp;#124;alt=Edit_this_at_Wikidata&amp;#124;link=https&amp;#58;//www.wikidata.org/wiki/Q575650#identifiers&amp;#124;class=noprint&amp;#124;Edit_this_at_Wikidata1079" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">International</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.worldcat.org/fast/2002371">FAST</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://d-nb.info/gnd/1078438080">Germany</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh2018000672">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://catalogue.bnf.fr/ark:/12148/cb17808721b">France</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://data.bnf.fr/ark:/12148/cb17808721b">BnF data</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://datos.bne.es/resource/XX6456854">Spain</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987012402011505171">Israel</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/concept/9bb5bffe-7522-4b18-9057-6d989ea6c162">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div>
<style data-mw-deduplicate="TemplateStyles:r1130092004">
/* start https://en.wikipedia.org/ */


.mw-parser-output .portal-bar{font-size:88%;font-weight:bold;display:flex;justify-content:center;align-items:baseline}.mw-parser-output .portal-bar-bordered{padding:0 2em;background-color:#fdfdfd;border:1px solid #a2a9b1;clear:both;margin:1em auto 0}.mw-parser-output .portal-bar-related{font-size:100%;justify-content:flex-start}.mw-parser-output .portal-bar-unbordered{padding:0 1.7em;margin-left:0}.mw-parser-output .portal-bar-header{margin:0 1em 0 0.5em;flex:0 0 auto;min-height:24px}.mw-parser-output .portal-bar-content{display:flex;flex-flow:row wrap;flex:0 1 auto;padding:0.15em 0;column-gap:1em;align-items:baseline;margin:0;list-style:none}.mw-parser-output .portal-bar-content-related{margin:0;list-style:none}.mw-parser-output .portal-bar-item{display:inline-block;margin:0.15em 0.2em;min-height:24px;line-height:24px}@media screen and (max-width:768px){.mw-parser-output .portal-bar{font-size:88%;font-weight:bold;display:flex;flex-flow:column wrap;align-items:baseline}.mw-parser-output .portal-bar-header{text-align:center;flex:0;padding-left:0.5em;margin:0 auto}.mw-parser-output .portal-bar-related{font-size:100%;align-items:flex-start}.mw-parser-output .portal-bar-content{display:flex;flex-flow:row wrap;align-items:center;flex:0;column-gap:1em;border-top:1px solid #a2a9b1;margin:0 auto;list-style:none}.mw-parser-output .portal-bar-content-related{border-top:none;margin:0;list-style:none}}.mw-parser-output .navbox+link+.portal-bar,.mw-parser-output .navbox+style+.portal-bar,.mw-parser-output .navbox+link+.portal-bar-bordered,.mw-parser-output .navbox+style+.portal-bar-bordered,.mw-parser-output .sister-bar+link+.portal-bar,.mw-parser-output .sister-bar+style+.portal-bar,.mw-parser-output .portal-bar+.navbox-styles+.navbox,.mw-parser-output .portal-bar+.navbox-styles+.sister-bar{margin-top:-1px}


/* end https://en.wikipedia.org/ */
</style></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-08-07" href="https://en.wikipedia.org/wiki/?title=Rust_(programming_language)&amp;oldid=1304623763">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>